diff --git a/.gitignore b/.gitignore index 03594cd..0806cff 100644 --- a/.gitignore +++ b/.gitignore @@ -76,4 +76,5 @@ typings/ .fusebox/ # NKMjs -builds \ No newline at end of file +builds +yarn.lock diff --git a/app/js-unicode/unicode-singleton-template.js b/app/js-unicode/unicode-singleton-template.js index 967e48a..627ef91 100644 --- a/app/js-unicode/unicode-singleton-template.js +++ b/app/js-unicode/unicode-singleton-template.js @@ -7,13 +7,14 @@ const UniBlock = require(`./catalogs/definition-uni-block`); const UniCategory = require(`./catalogs/definition-uni-cat`); const UniCategoryGroup = require(`./catalogs/definition-uni-cat-group`); +const _setActivateRangeCMD = new CmdSetActiveRange(); -class UNICODE extends nkm.com.helpers.Singleton { +class UNICODE extends nkm.com.Observable { constructor() { super(); } - static SetActiveRange = new CmdSetActiveRange(); + get SetActiveRange() { return _setActivateRangeCMD; } - static get MAX_GLYPH_COUNT() { return 65534; } + get MAX_GLYPH_COUNT() { return 65534; } _Init() { @@ -32,7 +33,7 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let i = 0; i < subs.length; i++) { let lcgc = subs[i]; lcgc.parent = lgc; - lcgc.primaryCommand = this.constructor.SetActiveRange; + lcgc.primaryCommand = this.SetActiveRange; lcgc.itemClass = UniCategory; cgc.content.push(lcgc); } @@ -43,7 +44,7 @@ class UNICODE extends nkm.com.helpers.Singleton { b.forEach((obj) => { obj.itemClass = UniBlock; - obj.primaryCommand = this.constructor.SetActiveRange; + obj.primaryCommand = this.SetActiveRange; }); this._blocks = b; @@ -68,14 +69,14 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let cid in cMap) { let char = cMap[cid]; this._charList[char.i] = char; - char.char = this.constructor.GetUnicodeCharacter(parseInt(cid, 16)); + char.char = this.GetUnicodeCharacter(parseInt(cid, 16)); } //let relMap = UNI_REL_MAPPING; } - static GetInfos(p_unicode, p_createLigature = false) { + GetInfos(p_unicode, p_createLigature = false) { let data = null; @@ -84,18 +85,18 @@ class UNICODE extends nkm.com.helpers.Singleton { this.GetSingle(p_unicode[0]) : this.GetLigature(p_unicode, p_createLigature); } else { - data = this.instance._charMap[p_unicode]; + data = this._charMap[p_unicode]; } return data || null; } - static GetSingle(p_lookup) { + GetSingle(p_lookup) { if (u.isNumber(p_lookup)) { p_lookup = p_lookup.toString(16).padStart(4, `0`); } - let result = this.instance._charMap[this.GetLookup(p_lookup)]; + let result = this._charMap[this.GetLookup(p_lookup)]; if (!result) { let isHex = u.isHex(p_lookup, 4); if (isHex) { @@ -103,7 +104,7 @@ class UNICODE extends nkm.com.helpers.Singleton { let uid = `${p_lookup}`, index = parseInt(uid, 16), - list = this.instance._blocks, + list = this._blocks, ownerBlock = null; result = { @@ -127,20 +128,20 @@ class UNICODE extends nkm.com.helpers.Singleton { if (ownerBlock) { result.block = ownerBlock; } else { console.error(`p_lookup = ${p_lookup} / index : ${index}`); } - this.instance._charMap[uid] = result; + this._charMap[uid] = result; } } return result; } - static GetLigature(p_lookups, p_create = true) { + GetLigature(p_lookups, p_create = true) { let lps = []; p_lookups.forEach((item) => { lps.push(this.GetLookup(item)); }); let ligatureLookup = lps.join(`+`), - ligature = this.instance._charMap[ligatureLookup]; + ligature = this._charMap[ligatureLookup]; if (!ligature) { if (!p_create) { return null; } @@ -149,19 +150,19 @@ class UNICODE extends nkm.com.helpers.Singleton { lps.forEach((item) => { charPts.push(this.GetUnicodeCharacter(parseInt(item, 16))); }); charPts = charPts.join(''); - ligature = { u: ligatureLookup, name: `LIGATURE ${charPts}`, cat: this.instance._categories.Liga, ligature: true, char: charPts }; - this.instance._charMap[ligatureLookup] = ligature; + ligature = { u: ligatureLookup, name: `LIGATURE ${charPts}`, cat: this._categories.Liga, ligature: true, char: charPts }; + this._charMap[ligatureLookup] = ligature; } return ligature; } - static GetAddress(p_character) { + GetAddress(p_character) { return p_character.codePointAt(0).toString(16).padStart(4, '0'); } - static GetUnicodeCharacter(p_codePoint) { + GetUnicodeCharacter(p_codePoint) { if (p_codePoint >= 0 && p_codePoint <= 0xD7FF || p_codePoint >= 0xE000 && p_codePoint <= 0xFFFF) { return String.fromCharCode(p_codePoint); @@ -187,7 +188,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * Attempts to find existing glyphs from UNICODE infos * @param {*} p_infos */ - static GetLookup(p_infos) { + GetLookup(p_infos) { let lookup = null; @@ -203,7 +204,7 @@ class UNICODE extends nkm.com.helpers.Singleton { return lookup; } - static UUni(p_infos) { + UUni(p_infos) { if (p_infos.ligature) { let ulist = p_infos.u.split(`+`); for (let i = 0; i < ulist.length; i++) { ulist[i] = `U+${ulist[i]}`; } @@ -213,7 +214,7 @@ class UNICODE extends nkm.com.helpers.Singleton { } } - static GetAddressesFromText(p_text, p_ignoreLigatures = true) { + GetAddressesFromText(p_text, p_ignoreLigatures = true) { let result = []; if (true) { //p_ignoreLigatures for (let i = 0; i < p_text.length; i++) { @@ -233,7 +234,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * @param {string} p_string accepts : 'a', 'abc', 'aU+0000', 'abcU+0000', 'U+0000U+0000U+0000', 'U+0000-abU+0000U+0000' * @returns */ - static TryGetInfosFromString(p_string, p_createLigature = false, p_sep = `-`) { + TryGetInfosFromString(p_string, p_createLigature = false, p_sep = `-`) { if (!p_string || p_string == ``) { return null; } @@ -246,7 +247,7 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let i = 0; i < resolved.length; i++) { let uchar = resolved.substr(i, 1); if (uchar == ``) { continue; } - unicodes.push(UNICODE.GetAddress(uchar)); + unicodes.push(this.GetAddress(uchar)); } glyphInfos = this.GetInfos(unicodes, p_createLigature); @@ -262,7 +263,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * @param {string} p_string accepts : 'a', 'abc', 'aU+0000', 'abcU+0000', 'U+0000U+0000U+0000', 'U+0000-abU+0000U+0000' * @returns */ - static ResolveString(p_string, p_sep = `-`) { + ResolveString(p_string, p_sep = `-`) { if (!p_string || p_string == ``) { return ``; } @@ -289,7 +290,7 @@ class UNICODE extends nkm.com.helpers.Singleton { cPt = Number.parseInt(uHex, 16); if (!Number.isNaN(cPt)) { result += String.fromCodePoint(cPt); } - else{ result += `U+${uHex}`; } + else { result += `U+${uHex}`; } if (cSplit.length == 0) { continue; } if (cSplit.length == 1 && cSplit[0] == ``) { continue; } // Trailing separator : U+0000- @@ -307,4 +308,4 @@ class UNICODE extends nkm.com.helpers.Singleton { } -module.exports = UNICODE; \ No newline at end of file +module.exports = new UNICODE(); \ No newline at end of file diff --git a/app/js/bindings.js b/app/js/bindings.js index de02566..e62045d 100644 --- a/app/js/bindings.js +++ b/app/js/bindings.js @@ -11,41 +11,31 @@ class Bindings extends nkm.com.helpers.BindingKit { _Init() { super._Init(); - this.AddClasses( - mkfData.Family - ); - let unicodeInfos = { name: 1, u: 1, char: 1 }; this.Add( { - context: nkm.data.catalogs.Catalog, + ctx: nkm.data.catalogs.Catalog, kvps: [ { key: mkfData.Glyph, binding: mkfData.Slot }, ] }, { - context: mkfWidgets.lists.UniCategoryGroup, + ctx: mkfWidgets.lists.UniCategoryGroup, kvps: [ { key: mkfCatalogs.UniCategory, binding: mkfWidgets.lists.UniCategory }, { key: mkfCatalogs.UniCategoryGroup, binding: mkfWidgets.lists.UniCategoryGroup }, ] }, { - context: nkm.uilib.lists.FolderListRoot, + ctx: nkm.uilib.lists.FolderListRoot, kvps: [ { key: mkfCatalogs.UniCategory, binding: mkfWidgets.lists.UniCategory }, { key: mkfCatalogs.UniCategoryGroup, binding: mkfWidgets.lists.UniCategoryGroup }, ] }, { - context: nkm.datacontrols.CONTEXT.DEFAULT_EDITOR, - kvps: [ - { key: mkfData.Family, binding: mkfEditors.FontEditor }, - ] - }, - { - context: nkm.datacontrols.CONTEXT.DEFAULT_INSPECTOR, + ctx: nkm.datacontrols.CTX.DEFAULT_INSPECTOR, kvps: [ { key: mkfData.Glyph, keys: unicodeInfos, @@ -54,7 +44,7 @@ class Bindings extends nkm.com.helpers.BindingKit { ] }, { - context: nkm.datacontrols.CONTEXT.DEFAULT_LIST_INSPECTOR, + ctx: nkm.datacontrols.CTX.DEFAULT_LIST_INSPECTOR, kvps: [ { key: mkfData.Glyph, keys: unicodeInfos, @@ -63,14 +53,14 @@ class Bindings extends nkm.com.helpers.BindingKit { ] }, { - context: nkm.data.serialization.CONTEXT.JSON, + ctx: nkm.data.s11n.CTX.JSON, kvps: [ - { key: mkfData.Family, binding: mkfData.serialization.json.Family }, - { key: mkfData.Prefs, binding: mkfData.serialization.json.SimpleDataEx } + { key: mkfData.Family, binding: mkfData.s11n.json.Family }, + { key: mkfData.Prefs, binding: mkfData.s11n.json.FontObjectData } ] }, { - context: nkm.documents.CONTEXT.DOCUMENT, + ctx: nkm.documents.CTX.DOCUMENT, kvps: [ { key: mkfData.Family, binding: nkm.documents.bound.JSONDocument } ] diff --git a/app/js/content-manager.js b/app/js/content-manager.js index 0deff0a..da3b867 100644 --- a/app/js/content-manager.js +++ b/app/js/content-manager.js @@ -6,7 +6,7 @@ const IDS = require(`./data/ids`); const SIGNAL = require(`./signal`); -class ContentManager extends nkm.com.helpers.SingletonEx { +class ContentManager extends nkm.com.Observable { constructor() { super(); } @@ -27,13 +27,9 @@ class ContentManager extends nkm.com.helpers.SingletonEx { //#region Update - static Push(p_data, p_method) { - this.instance._Push(p_data, p_method); - } - - static get ready() { return this.instance._ready; } + get ready() { return this._ready; } - _Push(p_data, p_method) { + Push(p_data, p_method) { let array = this._dataMap.get(p_data); @@ -86,4 +82,4 @@ class ContentManager extends nkm.com.helpers.SingletonEx { } -module.exports = ContentManager; \ No newline at end of file +module.exports = new ContentManager(); \ No newline at end of file diff --git a/app/js/data/app-settings.js b/app/js/data/app-settings.js new file mode 100644 index 0000000..eabc0ef --- /dev/null +++ b/app/js/data/app-settings.js @@ -0,0 +1,43 @@ +'use strict'; + +const nkm = require(`@nkmjs/core`); +const ENUMS = require("./enums"); +const ui = nkm.ui; +const inputs = nkm.uilib.inputs; + +const IDS = require(`./ids`); +const IDS_EXT = require(`./ids-ext`); +const IDS_PREFS = require(`./ids-prefs`); + +const base = nkm.app.AppSettings; +class AppSettings extends base { + constructor() { super(); } + + static __VALUES = { + + ...base.__VALUES, + + [IDS_PREFS.SVG_EDITOR_PATH]: { value: ``, group: IDS_PREFS.GROUP_THIRD_PARTIES }, + [IDS_PREFS.ILLU_PATH]: { value: ``, group: IDS_PREFS.GROUP_THIRD_PARTIES }, + + [IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD]: { value: 5000, group: IDS_PREFS.GROUP_DISPLAY }, + + [IDS_PREFS.MARK_COLOR]: { value: `#FF00FF`, group: IDS_PREFS.GROUP_RESOURCES }, + [IDS_EXT.IMPORT_BIND_RESOURCE]: { value: true, group: IDS_PREFS.GROUP_RESOURCES }, + + [IDS.FAMILY]: { value: `New MKFont`, group: IDS_PREFS.GROUP_DEFAULTS }, + [IDS.COPYRIGHT]: { value: `(c) mkfont 2023`, group: IDS_PREFS.GROUP_DEFAULTS }, + [IDS.DESCRIPTION]: { value: `Made with mkfont`, group: IDS_PREFS.GROUP_DEFAULTS }, + [IDS.URL]: { value: `https://github.com/Nebukam/mkfont`, group: IDS_PREFS.GROUP_DEFAULTS }, + [IDS.COLOR_PREVIEW]: { value: `#f5f5f5`, group: IDS_PREFS.GROUP_DEFAULTS }, + [IDS.PREVIEW_SIZE]: { value: 70, group: IDS_PREFS.GROUP_DEFAULTS }, + + }; + + _Init() { + super._Init(); + } + +} + +module.exports = nkm.data.Register(AppSettings); \ No newline at end of file diff --git a/app/js/data/family-data-block.js b/app/js/data/family-data-block.js index 23f4110..563b153 100644 --- a/app/js/data/family-data-block.js +++ b/app/js/data/family-data-block.js @@ -9,7 +9,7 @@ const SIGNAL = require(`../signal`); const IDS = require(`./ids`); const ENUMS = require(`./enums`); -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const Glyph = require(`./glyph-data-block`); const GlyphVariant = require(`./glyph-variant-data-block`); const GlyphVariantMissing = require(`./glyph-missing-data-block`); @@ -21,6 +21,8 @@ const ContentManager = require(`../content-manager`); const FamilyFontCache = require(`./family-font-cache`); const GlyphVariantRef = require(`./glyph-variant-data-block-reference`); +const defaultEm = 1000; + const domparser = new DOMParser(); const svgFontString = `` + @@ -32,7 +34,7 @@ const svgFontString = const svgFontRef = domparser.parseFromString(svgFontString, `image/svg+xml`).getElementsByTagName(`font`)[0]; -class FamilyDataBlock extends SimpleDataEx { +class FamilyDataBlock extends FontObjectData { constructor() { super(); } static __NFO__ = { @@ -40,6 +42,47 @@ class FamilyDataBlock extends SimpleDataEx { [nkm.com.IDS.ICON]: `font` }; + static __VALUES = { + + [IDS.FAMILY]: { getter: () => { return nkm.settings.Get(IDS.FAMILY) } }, + [IDS.COPYRIGHT]: { getter: () => { return nkm.settings.Get(IDS.COPYRIGHT) } }, + [IDS.DESCRIPTION]: { getter: () => { return nkm.settings.Get(IDS.DESCRIPTION) } }, + [IDS.URL]: { getter: () => { return nkm.settings.Get(IDS.URL) } }, + [IDS.VERSION]: { value: `1.0` }, + [IDS.COLOR_PREVIEW]: { getter: () => { return nkm.settings.Get(IDS.COLOR_PREVIEW) } }, + + //[IDS.ALPHABETIC]:{ value: 0 }, + //[IDS.MATHEMATICAL]:{ value: 350 }, + //[IDS.IDEOGRAPHIC]:{ value: 400 }, + + [IDS.PREVIEW_SIZE]: { getter: () => { return nkm.settings.Get(IDS.PREVIEW_SIZE) } }, + + [IDS.WEIGHT_CLASS]: { value: ENUMS.WEIGHTS.At(3).value }, + [IDS.FONT_STYLE]: { value: `Regular` }, + + [IDS.EM_UNITS]: { value: defaultEm, propagate: true }, + [IDS.EM_RESAMPLE]: { value: true }, + [IDS.BASELINE]: { value: defaultEm * 0.8, propagate: true }, + [IDS.ASCENT]: { value: defaultEm * 0.8, propagate: true }, + [IDS.ASC_RESAMPLE]: { value: false }, + [IDS.DESCENT]: { value: defaultEm * -0.25, propagate: true }, + + [IDS.CAP_HEIGHT]: { value: defaultEm * 0.7, propagate: true }, + [IDS.X_HEIGHT]: { value: defaultEm * 0.7 * 0.72, propagate: true }, + + //[IDS.H_ORIGIN_X]:{ value: 0 }, + //[IDS.H_ORIGIN_Y]:{ value: 0 }, + [IDS.WIDTH]: { value: 1000, propagate: true }, + //[IDS.V_ORIGIN_X]:{ value: 0 }, + //[IDS.V_ORIGIN_Y]:{ value: 0 }, + [IDS.HEIGHT]: { value: 1000, propagate: true }, + [IDS.MONOSPACE]: { value: false, propagate: true }, + [IDS.UNDERLINE_POSITION]: { value: null }, + [IDS.UNDERLINE_THICKNESS]: { value: null }, + //[IDS.HANGING]:{ value: 500 }, + + }; + _Init() { super._Init(); @@ -54,7 +97,7 @@ class FamilyDataBlock extends SimpleDataEx { this._searchSettings = nkm.com.Rent(SearchSettings); this._searchSettings.family = this; - this._glyphs = new nkm.collections.List(); + this._glyphs = []; this._glyphsMap = {}; this._ligatureSet = new Set(); this._glyphUnicodeCache = []; @@ -116,53 +159,6 @@ class FamilyDataBlock extends SimpleDataEx { } - _ResetValues(p_values) { - - let defaults = nkm.env.APP._prefDataObject; - - p_values[IDS.FAMILY] = { value: defaults.Get(IDS.FAMILY) }; - p_values[IDS.COPYRIGHT] = { value: defaults.Get(IDS.COPYRIGHT) }; - p_values[IDS.DESCRIPTION] = { value: defaults.Get(IDS.DESCRIPTION) }; - p_values[IDS.URL] = { value: defaults.Get(IDS.URL) }; - p_values[IDS.VERSION] = { value: `1.0` }; - p_values[IDS.COLOR_PREVIEW] = { value: defaults.Get(IDS.COLOR_PREVIEW) }; - - //p_values[IDS.ALPHABETIC] = { value: 0 }; - //p_values[IDS.MATHEMATICAL] = { value: 350 }; - //p_values[IDS.IDEOGRAPHIC] = { value: 400 }; - - p_values[IDS.PREVIEW_SIZE] = { value: defaults.Get(IDS.PREVIEW_SIZE) }; - - //// - - let defaultEm = 1000; - - p_values[IDS.WEIGHT_CLASS] = { value: ENUMS.WEIGHTS.At(3).value }; - p_values[IDS.FONT_STYLE] = { value: `Regular` }; - - p_values[IDS.EM_UNITS] = { value: defaultEm, propagate: true }; - p_values[IDS.EM_RESAMPLE] = { value: true }; - p_values[IDS.BASELINE] = { value: defaultEm * 0.8, propagate: true }; - p_values[IDS.ASCENT] = { value: defaultEm * 0.8, propagate: true }; - p_values[IDS.ASC_RESAMPLE] = { value: false }; - p_values[IDS.DESCENT] = { value: defaultEm * -0.25, propagate: true }; - - p_values[IDS.CAP_HEIGHT] = { value: defaultEm * 0.7, propagate: true }; - p_values[IDS.X_HEIGHT] = { value: defaultEm * 0.7 * 0.72, propagate: true }; - - //p_values[IDS.H_ORIGIN_X] = { value: 0 }; - //p_values[IDS.H_ORIGIN_Y] = { value: 0 }; - p_values[IDS.WIDTH] = { value: 1000, propagate: true }; - //p_values[IDS.V_ORIGIN_X] = { value: 0 }; - //p_values[IDS.V_ORIGIN_Y] = { value: 0 }; - p_values[IDS.HEIGHT] = { value: 1000, propagate: true }; - p_values[IDS.MONOSPACE] = { value: false, propagate: true }; - p_values[IDS.UNDERLINE_POSITION] = { value: null }; - p_values[IDS.UNDERLINE_THICKNESS] = { value: null }; - //p_values[IDS.HANGING] = { value: 500 }; - - } - Wake() { this._id = nkm.data.ID.New(`New MKFont`); } @@ -179,7 +175,7 @@ class FamilyDataBlock extends SimpleDataEx { AddGlyph(p_glyph) { - if (!this._glyphs.Add(p_glyph)) { return; } + if (!this._glyphs.AddNew(p_glyph)) { return; } let unicode = p_glyph.Get(IDS.UNICODE); if (unicode in this._glyphsMap) { @@ -203,7 +199,7 @@ class FamilyDataBlock extends SimpleDataEx { this.Broadcast(SIGNAL.GLYPH_ADDED, this, p_glyph); p_glyph._OnGlyphAddedToFamily(this); - //ContentManager.instance.Broadcast(SIGNAL.GLYPH_ADDED, p_glyph); + //ContentManager.Broadcast(SIGNAL.GLYPH_ADDED, p_glyph); //Need a way to find which layer might be referencing this glyph this._delayedUpdateReferences.Schedule(); @@ -235,7 +231,7 @@ class FamilyDataBlock extends SimpleDataEx { this.Broadcast(SIGNAL.GLYPH_REMOVED, this, g); g._OnGlyphRemovedFromFamily(this); - //ContentManager.instance.Broadcast(SIGNAL.GLYPH_REMOVED, g); + //ContentManager.Broadcast(SIGNAL.GLYPH_REMOVED, g); this._delayedUpdateReferences.Schedule(); @@ -262,7 +258,7 @@ class FamilyDataBlock extends SimpleDataEx { // Watch - _OnGlyphUnicodeChanged(p_glyph, p_valueObj, p_oldValue) { + _OnGlyphUnicodeChanged(p_glyph, p_newValue, p_oldValue) { let index = this._glyphUnicodeCache.indexOf(p_oldValue); @@ -270,7 +266,7 @@ class FamilyDataBlock extends SimpleDataEx { else { this._glyphUnicodeCache.push(unicode); } delete this._glyphsMap[p_oldValue]; - this._glyphsMap[p_valueObj.value] = p_glyph; + this._glyphsMap[p_newValue] = p_glyph; if (p_glyph.isLigature) { this._ligatureSet.add(p_glyph); } else { this._ligatureSet.delete(p_glyph); } @@ -293,36 +289,43 @@ class FamilyDataBlock extends SimpleDataEx { super.CommitUpdate(); } - CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent = false) { - super.CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent); - let infos = IDS.GetInfos(p_id); - if (!infos || !infos.recompute || !p_valueObj.propagate) { return; } - this._glyphs.ForEach((item, i) => { item._PushUpdate(); }); + CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent = false) { + super.CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent); + + let + descriptor = nkm.data.GetDescriptor(p_id), + definition = this.DEFINITIONS[p_id]; + + if (!descriptor || !descriptor.recompute || !definition.propagate) { return; } + for (const g of this._glyphs) { g._PushUpdate(); } } - _OnTransformValueChanged(p_data, p_id, p_valueObj, p_oldValue) { - let infos = IDS.GetInfos(p_id); - if (!infos || !infos.recompute || !p_valueObj.propagate) { return; } + _OnTransformValueChanged(p_data, p_id, p_newValue, p_oldValue) { + + let + descriptor = nkm.data.GetDescriptor(p_id), + definition = this.DEFINITIONS[p_id]; + + if (!descriptor || !descriptor.recompute || !definition.propagate) { return; } this._UpdateDisplayValues(); + // TODO : This can be greatly optimized by only propagating to glyphs that have the associated property == null - this._glyphs.ForEach((item, i) => { - item._variants.ForEach((v) => { - if (v._transformSettings._values[p_id].value == null) { v._transformSettings.CommitUpdate(); } - }) - }); + for (const g of this._glyphs) { + for (const v of g._variants) { + if (v._transformSettings._values[p_id] == null) { v._transformSettings.CommitUpdate(); } + } + } } _UpdateLayerReferences() { - this._glyphs.ForEach(glyph => { - glyph._variants.ForEach(variant => { - if (!variant._layers.isEmpty) { - variant._layers.ForEach(layer => { - if (!layer.importedVariant) { layer._RetrieveGlyphInfos(); } - }); - } - }); - }); + for (const g of this._glyphs) { + for (const v of g._variants) { + for (const lyr of v._layers) { + if (!lyr.importedVariant) { lyr._RetrieveGlyphInfos(); } + }; + }; + }; } _UpdateFontObject() { @@ -426,7 +429,7 @@ class FamilyDataBlock extends SimpleDataEx { if (p_target == p_candidate) { return true; } if (p_candidate._layers.isEmpty) { return false; } - let layers = p_candidate._layers._array; + let layers = p_candidate._layers; for (let i = 0, n = layers.length; i < n; i++) { let layer = layers[i]; @@ -445,6 +448,7 @@ class FamilyDataBlock extends SimpleDataEx { delete this._transformSettings._values[p].nullable; } + console.log(`_OnReset global transforms data block`); super._OnReset(); } @@ -459,7 +463,7 @@ class FamilyDataBlock extends SimpleDataEx { this._ResetSelectionPresets(); - while (!this._glyphs.isEmpty) { + while (this._glyphs.length) { let g = this._glyphs.last; this.RemoveGlyph(g); g.Release(); @@ -476,7 +480,7 @@ class FamilyDataBlock extends SimpleDataEx { this._searchSettings.Reset(false, true); ///// - this._glyphs.Clear(); + this._glyphs.length = 0; this._glyphsMap = {}; this._ligatureSet.clear(); this._glyphUnicodeCache.length = 0; @@ -489,4 +493,4 @@ class FamilyDataBlock extends SimpleDataEx { } -module.exports = FamilyDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(FamilyDataBlock); \ No newline at end of file diff --git a/app/js/data/family-font-cache.js b/app/js/data/family-font-cache.js index f17a4a2..00889da 100644 --- a/app/js/data/family-font-cache.js +++ b/app/js/data/family-font-cache.js @@ -29,8 +29,8 @@ class FamilyFontCache { _OnContentReady() { let - glyphCount = this._fontData._glyphs.count, - threshold = nkm.env.APP.PGet(IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD); + glyphCount = this._fontData._glyphs.length, + threshold = nkm.settings.Get(IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD); if (glyphCount > threshold) { return; } diff --git a/app/js/data/simple-data-ex.js b/app/js/data/font-object-data.js similarity index 80% rename from app/js/data/simple-data-ex.js rename to app/js/data/font-object-data.js index b4b3c1a..b6b895f 100644 --- a/app/js/data/simple-data-ex.js +++ b/app/js/data/font-object-data.js @@ -9,7 +9,7 @@ const UTILS = require(`./utils`); const __noResolution = []; -class SimpleDataEx extends nkm.data.SimpleDataBlock { +class FontObjectData extends nkm.data.SimpleDataBlock { constructor() { super(); @@ -25,15 +25,10 @@ class SimpleDataEx extends nkm.data.SimpleDataBlock { } - get resolutionFallbacks() { return __noResolution; } - get fontObject() { return this._fontObject; } - Resolve(p_id) { - return UTILS.Resolve(p_id, this, ...this.resolutionFallbacks); - } - _OnReset(p_individualSet, p_silent) { + super._OnReset(p_individualSet, p_silent); if (this._fontObject) { this._UpdateFontObject(); } } @@ -52,4 +47,4 @@ class SimpleDataEx extends nkm.data.SimpleDataBlock { } } -module.exports = SimpleDataEx; \ No newline at end of file +module.exports = FontObjectData; \ No newline at end of file diff --git a/app/js/data/glyph-data-block.js b/app/js/data/glyph-data-block.js index db6fdad..061877f 100644 --- a/app/js/data/glyph-data-block.js +++ b/app/js/data/glyph-data-block.js @@ -7,21 +7,23 @@ const io = nkm.io; const UNICODE = require(`../unicode`); -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const SIGNAL = require(`../signal`); const IDS = require(`./ids`); const GlyphVariant = require(`./glyph-variant-data-block`); -class GlyphDataBlock extends SimpleDataEx { +class GlyphDataBlock extends FontObjectData { constructor() { super(); } static __defaultVariantClass = GlyphVariant; - static __signalValueMap = { - [IDS.UNICODE]: SIGNAL.UNICODE_CHANGED - }; + static __VALUES = { + [IDS.GLYPH_NAME]: { value: '' }, + [IDS.UNICODE]: { value: null, signal: SIGNAL.UNICODE_CHANGED }, + //[IDS.DO_EXPORT]:{ value: true }, + } _Init() { @@ -31,7 +33,7 @@ class GlyphDataBlock extends SimpleDataEx { this._arabic_form = null; this._unicodeInfos = null; - this._variants = new nkm.collections.List(); + this._variants = []; this._defaultGlyph = new this.constructor.__defaultVariantClass(); this._defaultGlyph._isDefault = true; @@ -39,18 +41,12 @@ class GlyphDataBlock extends SimpleDataEx { } - _ResetValues(p_values) { - p_values[IDS.GLYPH_NAME] = { value: '' }; - p_values[IDS.UNICODE] = { value: null }; - //p_values[IDS.DO_EXPORT] = { value: true }; - } - get resolutionFallbacks() { return [this._family]; } get activeVariant() { return this._defaultGlyph; } get isLigature() { - let unc = this._values[IDS.UNICODE].value; + let unc = this._values[IDS.UNICODE]; return unc ? unc.includes(`+`) ? true : false : false; } @@ -59,11 +55,10 @@ class GlyphDataBlock extends SimpleDataEx { if (this._family == p_value) { return; } let oldFamily = this._family; this._family = p_value; - - for (let i = 0; i < this._variants.count; i++) { this._variants.At(i).family = p_value; } + for (const v of this._variants) { v.family = p_value; } } - get variantsCount() { return this._variants.count; } + get variantsCount() { return this._variants.length; } get unicodeInfos() { if (!this._unicodeInfos) { return UNICODE.GetInfos(this.Get(IDS.UNICODE), true); } @@ -74,10 +69,10 @@ class GlyphDataBlock extends SimpleDataEx { // Variant management AddVariant(p_glyphVariant = null) { - if (p_glyphVariant != null) { if (this._variants.Contains(p_glyphVariant)) { return p_glyphVariant; } } + if (p_glyphVariant != null) { if (this._variants.includes(p_glyphVariant)) { return p_glyphVariant; } } else { p_glyphVariant = com.Rent(this.constructor.__defaultVariantClass); } this._variants.Add(p_glyphVariant); - p_glyphVariant.index = this._variants.count - 1; + p_glyphVariant.index = this._variants.length - 1; this._OnGlyphVariantAdded(p_glyphVariant); return p_glyphVariant; } @@ -100,7 +95,7 @@ class GlyphDataBlock extends SimpleDataEx { p_glyphVariant.glyph = null; p_glyphVariant.family = null; p_glyphVariant.Unwatch(com.SIGNAL.UPDATED, this._OnGlyphVariantUpdated, this); - this._variants.ForEach((item, i) => { item.index = i; }); + this._variants.forEach((item, i) => { item.index = i; }); this.Broadcast(com.SIGNAL.ITEM_REMOVED, this, p_glyphVariant); } @@ -109,7 +104,7 @@ class GlyphDataBlock extends SimpleDataEx { } GetVariant(p_index = 0) { - let variant = this._variants.At(p_index); + let variant = this._variants[p_index]; if (!variant) { variant = this._defaultGlyph; } return variant; } @@ -123,8 +118,8 @@ class GlyphDataBlock extends SimpleDataEx { _OnGlyphRemovedFromFamily(p_family) { this.Broadcast(SIGNAL.GLYPH_REMOVED, this); // Disconnect variant users - this._variants.ForEach((item, i) => { - for (let i = 0, n = item._layerUsers.count; i < n; i++) { + this._variants.forEach((item, i) => { + for (let i = 0, n = item._layerUsers.length; i < n; i++) { let user = item._layerUsers.last; user.importedVariant = null; } @@ -134,7 +129,7 @@ class GlyphDataBlock extends SimpleDataEx { // _PushUpdate() { - this._variants.ForEach((item, i) => { item._PushUpdate(); }); + this._variants.forEach((item, i) => { item._PushUpdate(); }); } _CleanUp() { @@ -150,7 +145,7 @@ class GlyphDataBlock extends SimpleDataEx { this._defaultGlyph.Reset(false, true); // will clear SVG stuff since family == null this._defaultGlyph._ClearLayers(); - + this._unicode = null; this._unicodeInfos = null; @@ -161,4 +156,4 @@ class GlyphDataBlock extends SimpleDataEx { } -module.exports = GlyphDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(GlyphDataBlock); \ No newline at end of file diff --git a/app/js/data/glyph-layer-data-block.js b/app/js/data/glyph-layer-data-block.js index 5a3748e..8867542 100644 --- a/app/js/data/glyph-layer-data-block.js +++ b/app/js/data/glyph-layer-data-block.js @@ -1,11 +1,8 @@ 'use strict'; const nkm = require(`@nkmjs/core`); -const dom = nkm.ui.dom; -const u = nkm.u; -const io = nkm.io; -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const IDS = require(`./ids`); const UNICODE = require('../unicode'); @@ -13,10 +10,41 @@ const SIGNAL = require('../signal'); const ENUMS = require(`./enums`); -class GlyphLayerDataBlock extends SimpleDataEx { - +class GlyphLayerDataBlock extends FontObjectData { constructor() { super(); } + static __VALUES = { + + [IDS.PATH]: { value: '' }, + [IDS.INVERTED]: { value: false }, + [IDS.LYR_IS_CONTROL_LAYER]: { value: false }, + [IDS.CIRCULAR_REFERENCE]: { value: false }, + [IDS.LYR_CHARACTER_NAME]: { value: `` }, + [IDS.LYR_CUSTOM_ID]: { value: null }, + [IDS.DO_EXPORT]: { value: true }, + [IDS.LYR_INDEX]: { value: 0 }, + + // Transform settings + [IDS.LYR_USE_PREV_LAYER]: { value: false }, + [IDS.TR_LYR_BOUNDS_MODE]: { value: ENUMS.BOUNDS_OUTSIDE }, + [IDS.TR_BOUNDS_MODE]: { value: ENUMS.BOUNDS_OUTSIDE }, + [IDS.TR_LYR_SCALE_MODE]: { value: ENUMS.SCALE_MANUAL }, + [IDS.TR_LYR_SCALE_FACTOR]: { value: 1 }, + [IDS.TR_NRM_FACTOR]: { value: 0 }, + [IDS.TR_ANCHOR]: { value: ENUMS.ANCHOR_CENTER }, + [IDS.TR_LYR_SELF_ANCHOR]: { value: ENUMS.ANCHOR_CENTER }, + [IDS.TR_X_OFFSET]: { value: 0 }, + [IDS.TR_Y_OFFSET]: { value: 0 }, + [IDS.TR_MIRROR]: { value: ENUMS.MIRROR_NONE }, + + [IDS.TR_SKEW_ROT_ORDER]: { value: ENUMS.SKR_ORDER_R_X_Y }, + [IDS.TR_ROTATION]: { value: 0 }, + [IDS.TR_ROTATION_ANCHOR]: { value: ENUMS.ANCHOR_CENTER }, + [IDS.TR_SKEW_X]: { value: 0 }, + [IDS.TR_SKEW_Y]: { value: 0 }, + + }; + _Init() { super._Init(); @@ -34,39 +62,6 @@ class GlyphLayerDataBlock extends SimpleDataEx { } - _ResetValues(p_values) { - - // Base bs - p_values[IDS.PATH] = { value: '' }; - p_values[IDS.INVERTED] = { value: false }; - p_values[IDS.LYR_IS_CONTROL_LAYER] = { value: false }; - p_values[IDS.CIRCULAR_REFERENCE] = { value: false }; - p_values[IDS.LYR_CHARACTER_NAME] = { value: `` }; - p_values[IDS.LYR_CUSTOM_ID] = { value: null }; - p_values[IDS.DO_EXPORT] = { value: true }; - p_values[IDS.LYR_INDEX] = { value: 0 }; - - // Transform settings - p_values[IDS.LYR_USE_PREV_LAYER] = { value: false }; - p_values[IDS.TR_LYR_BOUNDS_MODE] = { value: ENUMS.BOUNDS_OUTSIDE }; - p_values[IDS.TR_BOUNDS_MODE] = { value: ENUMS.BOUNDS_OUTSIDE }; - p_values[IDS.TR_LYR_SCALE_MODE] = { value: ENUMS.SCALE_MANUAL }; - p_values[IDS.TR_LYR_SCALE_FACTOR] = { value: 1 }; - p_values[IDS.TR_NRM_FACTOR] = { value: 0 }; - p_values[IDS.TR_ANCHOR] = { value: ENUMS.ANCHOR_CENTER }; - p_values[IDS.TR_LYR_SELF_ANCHOR] = { value: ENUMS.ANCHOR_CENTER }; - p_values[IDS.TR_X_OFFSET] = { value: 0 }; - p_values[IDS.TR_Y_OFFSET] = { value: 0 }; - p_values[IDS.TR_MIRROR] = { value: ENUMS.MIRROR_NONE }; - - p_values[IDS.TR_SKEW_ROT_ORDER] = { value: ENUMS.SKR_ORDER_R_X_Y }; - p_values[IDS.TR_ROTATION] = { value: 0 }; - p_values[IDS.TR_ROTATION_ANCHOR] = { value: ENUMS.ANCHOR_CENTER }; - p_values[IDS.TR_SKEW_X] = { value: 0 }; - p_values[IDS.TR_SKEW_Y] = { value: 0 }; - - } - get glyphInfos() { return this._glyphInfos; } set glyphInfos(p_value) { this._glyphInfos = p_value; } @@ -74,7 +69,7 @@ class GlyphLayerDataBlock extends SimpleDataEx { set index(p_value) { if (this._index == p_value) { return; } this._index = p_value; - this._values[IDS.LYR_INDEX].value = p_value; + this._values[IDS.LYR_INDEX] = p_value; if (this._variant) { this._DirtyLayer(); } } @@ -128,7 +123,7 @@ class GlyphLayerDataBlock extends SimpleDataEx { if (glyph.isNull) { this.importedVariant = null; - this._values[IDS.CIRCULAR_REFERENCE].value = false; + this._values[IDS.CIRCULAR_REFERENCE] = false; } else { @@ -142,13 +137,13 @@ class GlyphLayerDataBlock extends SimpleDataEx { } - CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent = false) { + CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent = false) { if (p_id == IDS.LYR_CHARACTER_NAME) { this._RetrieveGlyphInfos(); } if (p_id == IDS.LYR_IS_CONTROL_LAYER) { - if (p_valueObj.value) { this._variant.controlLayer = this; } + if (p_newValue) { this._variant.controlLayer = this; } else if (this._variant.controlLayer == this) { this._variant.controlLayer = null; } } - super.CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent); + super.CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent); } _DirtyLayer() { @@ -181,4 +176,4 @@ class GlyphLayerDataBlock extends SimpleDataEx { } -module.exports = GlyphLayerDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(GlyphLayerDataBlock); \ No newline at end of file diff --git a/app/js/data/glyph-missing-data-block.js b/app/js/data/glyph-missing-data-block.js index 0fd28e8..000d20b 100644 --- a/app/js/data/glyph-missing-data-block.js +++ b/app/js/data/glyph-missing-data-block.js @@ -14,10 +14,10 @@ const svgString = ``; - -const svgGlyphRef = domparser.parseFromString(svgString, `image/svg+xml`).getElementsByTagName(`glyph`)[0]; const GlyphVariantDataBlock = require(`./glyph-variant-data-block`); -class GlyphVariantRef extends GlyphVariantDataBlock { +const base = GlyphVariantDataBlock; +class GlyphVariantRef extends base { constructor() { super(); } - - _ResetValues(p_values) { - super._ResetValues(p_values); - p_values[IDS.SHOW_ALL_LAYERS] = { value: false }; - } - + static __VALUES = { + ...base.__VALUES, + [IDS.SHOW_ALL_LAYERS]: { value: false } + }; } -module.exports = GlyphVariantRef; \ No newline at end of file +module.exports = nkm.data.Register(GlyphVariantRef); \ No newline at end of file diff --git a/app/js/data/glyph-variant-data-block.js b/app/js/data/glyph-variant-data-block.js index 9fda6e5..0e4a4c9 100644 --- a/app/js/data/glyph-variant-data-block.js +++ b/app/js/data/glyph-variant-data-block.js @@ -5,7 +5,7 @@ const dom = nkm.ui.dom; const u = nkm.u; const io = nkm.io; -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const IDS = require(`./ids`); const TransformSettings = require(`./settings-transforms-data-block`); @@ -20,10 +20,27 @@ const svgString = ` { item.index = i; }); + this._layers.forEach((item, i) => { item.index = i; }); this.Broadcast(SIGNAL.LAYER_REMOVED, this, p_layer); this.Broadcast(SIGNAL.LAYERS_UPDATED, this); this._PushUpdate(); @@ -116,9 +115,9 @@ class GlyphVariantDataBlock extends SimpleDataEx { } MoveLayer(p_layer, p_index) { - if (!this._layers.Contains(p_layer)) { return; } - this._layers.Move(p_layer, p_index); - this._layers.ForEach((item, i) => { item.index = i; }); + if (!this._layers.includes(p_layer)) { return; } + this._layers.AddAt(p_layer, p_index); + this._layers.forEach((item, i) => { item.index = i; }); this.Broadcast(SIGNAL.LAYERS_UPDATED, this); this._PushUpdate(); return p_layer; @@ -150,12 +149,12 @@ class GlyphVariantDataBlock extends SimpleDataEx { } _ConcatPaths(p_rootPath) { - if (this._layers.isEmpty) { return p_rootPath; } + if (!this._layers.length) { return p_rootPath; } if (IDS.isEmptyPathContent(p_rootPath)) { p_rootPath = ``; } - this._layers.ForEach((item) => { - let pathData = item.Get(IDS.PATH); + for (const lyr of this._layers) { + let pathData = lyr.Get(IDS.PATH); if (pathData && !IDS.isEmptyPathContent(pathData.path)) { p_rootPath += ` ` + pathData.path; }; - }); + } if (p_rootPath.trim() == ``) { p_rootPath = IDS.EMPTY_PATH_CONTENT; } return p_rootPath; } @@ -194,15 +193,15 @@ class GlyphVariantDataBlock extends SimpleDataEx { } - CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent = false) { - super.CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent); - let infos = IDS.GetInfos(p_id); - if (!infos) { return; } - if (infos.recompute && this._family) { this._PushUpdate(); } + CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent = false) { + super.CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent); + let descriptor = nkm.data.GetDescriptor(p_id); + if (!descriptor) { return; } + if (descriptor.recompute && this._family) { this._PushUpdate(); } } - _OnLayerValueChanged(p_layer, p_id, p_valueObj, p_oldValue) { - this.Broadcast(SIGNAL.LAYER_VALUE_CHANGED, this, p_layer, p_id, p_valueObj, p_oldValue); + _OnLayerValueChanged(p_layer, p_id, p_newValue, p_oldValue) { + this.Broadcast(SIGNAL.LAYER_VALUE_CHANGED, this, p_layer, p_id, p_newValue, p_oldValue); this._PushUpdate(); } @@ -216,9 +215,9 @@ class GlyphVariantDataBlock extends SimpleDataEx { //When pushing update, make sure to notify layers that //reference this variant, as they will need to be updated as well. //but only after this specific variant has been updated. - this._layerUsers.ForEach((item) => { - if (!item._isCircular) { item._variant._PushUpdate(true); } - }); + for (const user of this._layerUsers) { + if (!user._isCircular) { user._variant._PushUpdate(true); } + } } @@ -234,7 +233,7 @@ class GlyphVariantDataBlock extends SimpleDataEx { _ClearLayers() { this.selectedLayer = null; - while (!this._layers.isEmpty) { this.RemoveLayer(this._layers.last).Release(); } + while (this._layers.length) { this.RemoveLayer(this._layers.last).Release(); } this.controlLayer = null; } @@ -247,18 +246,18 @@ class GlyphVariantDataBlock extends SimpleDataEx { HasLayer(p_char, p_uni = null) { - if (this._layers.isEmpty) { return false; } + if (!this._layers.length) { return false; } return this.TryGetLayer(p_char, p_uni) == null ? false : true; } TryGetLayer(p_char, p_uni = null) { - if (this._layers.isEmpty) { return null; } + if (!this._layers.length) { return null; } - for (let i = 0, n = this._layers.count; i < n; i++) { + for (let i = 0, n = this._layers.length; i < n; i++) { let - lyr = this._layers.At(i), + lyr = this._layers[i], cval = lyr.Get(IDS.LYR_CHARACTER_NAME); if (cval == p_char || cval == p_uni) { return lyr; } @@ -281,4 +280,4 @@ class GlyphVariantDataBlock extends SimpleDataEx { } -module.exports = GlyphVariantDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(GlyphVariantDataBlock); \ No newline at end of file diff --git a/app/js/data/ids-ext.js b/app/js/data/ids-ext.js index bef2058..f6301a0 100644 --- a/app/js/data/ids-ext.js +++ b/app/js/data/ids-ext.js @@ -13,248 +13,213 @@ const UNICODE = require(`../unicode`); * @hideconstructor * @memberof ui.core */ -class IDS_EXT { - constructor() { } - - static infos = {}; - - //#region search - - static SEARCH_ENABLED = 'searchEnabled'; - static SEARCH_RESULTS = 'searchResults'; - static SEARCH_TERM = 'search'; - static ADD_COMPOSITION = 'addComp'; - static MUST_EXISTS = 'mustExists'; - static CASE_INSENSITIVE = 'broadSearch'; - static FILTER_CATEGORY = 'categories'; - - static { - - // Family properties - this.infos[this.SEARCH_ENABLED] = { - inputType: inputs.Boolean, - label: `Search`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `Enable filter within current glyph selection.\nSeparate terms with an empty space.\nNote : search can impact responsiveness.` - }; - - this.infos[this.SEARCH_TERM] = { - recompute: true, - inputType: inputs.Search, - label: `Search`, - inputOptions: { placeholder: `a b c square...`, changeOnInput: true, submitOnChange: true, }, - desc: `Search for characters within Unicode.\nSeparate search terms with a space.` - }; - - this.infos[this.CASE_INSENSITIVE] = { - recompute: true, - inputType: inputs.Checkbox, - label: `Broad`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `Broad search doesn't care whether the case is uppercase or lowercase.` - }; - - this.infos[this.ADD_COMPOSITION] = { - recompute: true, - inputType: inputs.Checkbox, - label: `Relatives`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `Whether to include glyph relatives & decompositions to initial results.\ni.e, "é" will add ' and e to the results.` - }; - - this.infos[this.MUST_EXISTS] = { - recompute: true, - inputType: inputs.Checkbox, - label: `Exists`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `Show only glyphs existing within the font.` - }; - - } - - //#endregion - - //#region Import - - static IMPORT_ASSIGN_MODE = 'import-assign-mode'; - static IMPORT_OVERLAP_MODE = 'import-overlap-mode'; - - static IMPORT_PREFIX = 'import-prefix'; - static IMPORT_SEPARATOR = 'import-sep'; - static IMPORT_MARK_X = 'import-x'; - static IMPORT_MARK_CAP = 'import-cap'; - static IMPORT_MARK_COL = 'import-col'; - - static IMPORT_BLOCK = 'import-block'; - static IMPORT_BLOCK_START = 'import-block-start'; - - static IMPORT_JUMP_OVER = 'import-jump-over'; - - static IMPORT_BIND_RESOURCE = 'import-bind'; - static IMPORT_TEXT_AS_LAYERS = 'import-text-as-layers'; - - static { - - this.infos[this.IMPORT_ASSIGN_MODE] = { - import: true, - enum: ENUMS.ASSIGN_IMPORT_MODE, - inputType: inputs.Select, - label: `Assignation`, - inputOptions: { catalog: ENUMS.ASSIGN_IMPORT_MODE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, - desc: `How the imported file is associated to a Unicode value.` - }; - - this.infos[this.IMPORT_OVERLAP_MODE] = { - import: true, - enum: ENUMS.OVERLAP, - inputType: inputs.Select, - label: `Overlap`, - inputOptions: { catalog: ENUMS.OVERLAP, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, - desc: `How deal with glyphs that already exists.` - }; - - this.infos[this.IMPORT_BLOCK] = { - import: true, - enum: UNICODE.instance._blockCatalog, - inputType: inputs.Select, - label: `Reference block`, - inputOptions: { catalog: UNICODE.instance._blockCatalog, size: ui.FLAGS.SIZE_S }, - desc: `UNICODE Block to work with (there's ${UNICODE.instance._blockCatalog.count} of them!)` - }; - - this.infos[this.IMPORT_BLOCK_START] = { - import: true, - enum: ENUMS.BLOCK_START_MODE, - inputType: inputs.Select, - label: `Start point`, - inputOptions: { catalog: ENUMS.BLOCK_START_MODE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, - desc: `Where to start adding within the selected block` - }; - - this.infos[this.IMPORT_JUMP_OVER] = { - import: true, - inputType: inputs.Boolean, - label: `Search`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - }; - - this.infos[this.IMPORT_BIND_RESOURCE] = { - import: true, - inputType: inputs.Boolean, - label: `Bind imported files`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `Imported files will become bound to their glyphs.\nThis means that each time the files are updated outside the app, the glyph will be re-imported.\nNote that you remove that binding at any time.`, - }; - - this.infos[this.IMPORT_TEXT_AS_LAYERS] = { - import: true, - inputType: inputs.Boolean, - label: `Text as components`, - inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, - desc: `When enabled, text element within the SVG will create components named after that text' content.`, - }; - - this.infos[this.IMPORT_PREFIX] = { - import: true, - inputType: inputs.Text, - label: `Name prefix`, - desc: `Prefix used to check where the unicode definition starts in the filename.\nThe prefix and all characters before will be ignored.` - }; - - this.infos[this.IMPORT_SEPARATOR] = { - import: true, - inputType: inputs.Text, - label: `Separator`, - desc: `Separator character in filenames.\nUsed to separate unicode values\ni.e char_U+0000, char_U+0000_U+0000, char_l_i_g_a` - }; - - this.infos[this.IMPORT_MARK_X] = { - import: true, - inputType: inputs.Text, - label: `X hint`, - desc: `A string of text that, if found in the file name, will scale the glyph to X-Height instead of selected default.` - }; - - this.infos[this.IMPORT_MARK_CAP] = { - import: true, - inputType: inputs.Text, - label: `Cap hint`, - desc: `A string of text that, if found in the file name, will scale the glyph to Cap-Height instead of selected default.` - }; - - this.infos[this.IMPORT_MARK_COL] = { - import: true, - inputType: inputs.Color, - label: `Bounds color`, - desc: `Color used inside the imported SVG to 'mark' its special boundaries.\nSee online help for more about special boundaries.` - }; - - } - - //#endregion - - //#region Ligatures - - static LIGA_TEXT = 'ligaSourceText'; - static LIGA_MIN = 'ligaMin'; - static LIGA_MAX = 'ligaMax'; - static LIGA_MIN_OCCURENCE = 'ligaOccMin'; - static LIGA_EACH_LINE = 'ligaEachLine'; - - static RANGE_MIXED = 0; - static RANGE_INLINE = 1; - static RANGE_PLAIN = 2; - - static { - - - this.infos[this.LIGA_TEXT] = { - recompute: true, - inputType: inputs.Textarea, - label: `Broad`, - inputOptions: { rows: 15 }, - }; - - this.infos[this.LIGA_MIN] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Min length`, - inputOptions: { size: ui.FLAGS.SIZE_XS, min: 2, max: 30 }, - desc: `The minimum number of siblings to look for.` - }; - - this.infos[this.LIGA_MAX] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Max length`, - inputOptions: { size: ui.FLAGS.SIZE_XS, min: 3, max: 30 }, - desc: `The maximum number of siblings to look for.` - }; - - this.infos[this.LIGA_MIN_OCCURENCE] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Min occurences`, - inputOptions: { size: ui.FLAGS.SIZE_XS, min: 1 }, - desc: `Minimum amount of time a ligature candidate must've been found to be shown.` - }; - - this.infos[this.LIGA_EACH_LINE] = { - recompute: true, - inputType: inputs.Boolean, - label: `Each line is a ligature`, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - desc: `When enabled, each new line is considered as a valid ligature candidate.` - }; - - } - - //#endregion - - static GetInfos(p_id) { - return p_id in this.infos ? this.infos[p_id] : null; - } - -} +const IDS_EXT = {}; + +//#region search +IDS_EXT.ADD_COMPOSITION = Object.freeze('addComp'); +IDS_EXT.MUST_EXISTS = Object.freeze('mustExists'); +IDS_EXT.FILTER_CATEGORY = Object.freeze('categories'); + +nkm.data.RegisterDescriptors({ + + [IDS_EXT.ADD_COMPOSITION]: { + recompute: true, + inputType: inputs.Checkbox, + label: `Relatives`, + inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, + desc: `Whether to include glyph relatives & decompositions to initial results.\ni.e, "é" will add ' and e to the results.` + }, + + [IDS_EXT.MUST_EXISTS]: { + recompute: true, + inputType: inputs.Checkbox, + label: `Exists`, + inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, + desc: `Show only glyphs existing within the font.` + }, + +}); + + +//#endregion + +//#region Import + +IDS_EXT.IMPORT_ASSIGN_MODE = Object.freeze('import-assign-mode'); +IDS_EXT.IMPORT_OVERLAP_MODE = Object.freeze('import-overlap-mode'); + +IDS_EXT.IMPORT_PREFIX = Object.freeze('import-prefix'); +IDS_EXT.IMPORT_SEPARATOR = Object.freeze('import-sep'); +IDS_EXT.IMPORT_MARK_X = Object.freeze('import-x'); +IDS_EXT.IMPORT_MARK_CAP = Object.freeze('import-cap'); +IDS_EXT.IMPORT_MARK_COL = Object.freeze('import-col'); + +IDS_EXT.IMPORT_BLOCK = Object.freeze('import-block'); +IDS_EXT.IMPORT_BLOCK_START = Object.freeze('import-block-start'); + +IDS_EXT.IMPORT_JUMP_OVER = Object.freeze('import-jump-over'); + +IDS_EXT.IMPORT_BIND_RESOURCE = Object.freeze('import-bind'); +IDS_EXT.IMPORT_TEXT_AS_LAYERS = Object.freeze('import-text-as-layers'); + +nkm.data.RegisterDescriptors({ + + [IDS_EXT.IMPORT_ASSIGN_MODE]: { + import: true, + enum: ENUMS.ASSIGN_IMPORT_MODE, + inputType: inputs.Select, + label: `Assignation`, + inputOptions: { catalog: ENUMS.ASSIGN_IMPORT_MODE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, + desc: `How the imported file is associated to a Unicode value.` + }, + + [IDS_EXT.IMPORT_OVERLAP_MODE]: { + import: true, + enum: ENUMS.OVERLAP, + inputType: inputs.Select, + label: `Overlap`, + inputOptions: { catalog: ENUMS.OVERLAP, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, + desc: `How deal with glyphs that already exists.` + }, + + [IDS_EXT.IMPORT_BLOCK]: { + import: true, + enum: UNICODE._blockCatalog, + inputType: inputs.Select, + label: `Reference block`, + inputOptions: { catalog: UNICODE._blockCatalog, size: ui.FLAGS.SIZE_S }, + desc: `UNICODE Block to work with (there's ${UNICODE._blockCatalog.length} of them!)` + }, + + [IDS_EXT.IMPORT_BLOCK_START]: { + import: true, + enum: ENUMS.BLOCK_START_MODE, + inputType: inputs.Select, + label: `Start point`, + inputOptions: { catalog: ENUMS.BLOCK_START_MODE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_S }, + desc: `Where to start adding within the selected block` + }, + + [IDS_EXT.IMPORT_JUMP_OVER]: { + import: true, + valueType:nkm.data.TYPES.BOOLEAN, + label: `Search`, + inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, + }, + + [IDS_EXT.IMPORT_BIND_RESOURCE]: { + import: true, + valueType:nkm.data.TYPES.BOOLEAN, + label: `Bind imported files`, + inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, + desc: `Imported files will become bound to their glyphs.\nIDS_EXT means that each time the files are updated outside the app, the glyph will be re-imported.\nNote that you remove that binding at any time.`, + }, + + [IDS_EXT.IMPORT_TEXT_AS_LAYERS]: { + import: true, + valueType:nkm.data.TYPES.BOOLEAN, + label: `Text as components`, + inputOptions: { placeholder: `...`, size: ui.FLAGS.SIZE_XS }, + desc: `When enabled, text element within the SVG will create components named after that text' content.`, + }, + + [IDS_EXT.IMPORT_PREFIX]: { + import: true, + inputType: inputs.Text, + label: `Name prefix`, + desc: `Prefix used to check where the unicode definition starts in the filename.\nThe prefix and all characters before will be ignored.` + }, + + [IDS_EXT.IMPORT_SEPARATOR]: { + import: true, + inputType: inputs.Text, + label: `Separator`, + desc: `Separator character in filenames.\nUsed to separate unicode values\ni.e char_U+0000, char_U+0000_U+0000, char_l_i_g_a` + }, + + [IDS_EXT.IMPORT_MARK_X]: { + import: true, + inputType: inputs.Text, + label: `X hint`, + desc: `A string of text that, if found in the file name, will scale the glyph to X-Height instead of selected default.` + }, + + [IDS_EXT.IMPORT_MARK_CAP]: { + import: true, + inputType: inputs.Text, + label: `Cap hint`, + desc: `A string of text that, if found in the file name, will scale the glyph to Cap-Height instead of selected default.` + }, + + [IDS_EXT.IMPORT_MARK_COL]: { + import: true, + inputType: inputs.Color, + label: `Bounds color`, + desc: `Color used inside the imported SVG to 'mark' its special boundaries.\nSee online help for more about special boundaries.` + }, + +}); + + +//#endregion + +//#region Ligatures + +IDS_EXT.LIGA_TEXT = Object.freeze('ligaSourceText'); +IDS_EXT.LIGA_MIN = Object.freeze('ligaMin'); +IDS_EXT.LIGA_MAX = Object.freeze('ligaMax'); +IDS_EXT.LIGA_MIN_OCCURENCE = Object.freeze('ligaOccMin'); +IDS_EXT.LIGA_EACH_LINE = Object.freeze('ligaEachLine'); + +IDS_EXT.RANGE_MIXED = 0; +IDS_EXT.RANGE_INLINE = 1; +IDS_EXT.RANGE_PLAIN = 2; + +nkm.data.RegisterDescriptors({ + + [IDS_EXT.LIGA_TEXT]: { + recompute: true, + inputType: inputs.Textarea, + label: `Broad`, + inputOptions: { rows: 12 }, + }, + + [IDS_EXT.LIGA_MIN]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Min length`, + inputOptions: { min: 2, max: 30, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `The minimum number of siblings to look for.` + }, + + [IDS_EXT.LIGA_MAX]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Max length`, + inputOptions: { min: 3, max: 30, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `The maximum number of siblings to look for.` + }, + + [IDS_EXT.LIGA_MIN_OCCURENCE]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Min occurences`, + inputOptions: { min: 1, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Minimum amount of time a ligature candidate must've been found to be shown.` + }, + + [IDS_EXT.LIGA_EACH_LINE]: { + recompute: true, + valueType:nkm.data.TYPES.BOOLEAN, + label: `Each line is a ligature`, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + desc: `When enabled, each new line is considered as a valid ligature candidate.` + }, + +}); + + +//#endregion + module.exports = IDS_EXT; \ No newline at end of file diff --git a/app/js/data/ids-prefs.js b/app/js/data/ids-prefs.js index 053e84b..86ecf82 100644 --- a/app/js/data/ids-prefs.js +++ b/app/js/data/ids-prefs.js @@ -12,68 +12,78 @@ const UNICODE = require(`../unicode`); * @hideconstructor * @memberof ui.core */ -class IDS_PREFS { - constructor() { } - - static infos = {}; - - static MARK_COLOR = 'markColor'; - static SVG_EDITOR_PATH = 'svgEditorPath'; - static ILLU_PATH = 'illustratorPath'; - - static AUTOSAVE = 'doAutoSave'; - static AUTOSAVE_TIMER = 'autosaveTimer'; - - static MANUAL_PREVIEW_REFRESH_THRESHOLD = 'manPrevRefresh'; - - static { - - // General - this.infos[this.MARK_COLOR] = { - inputType: inputs.Color, - label: `Mark Color`, - inputOptions: { size: ui.FLAGS.SIZE_XXS }, - desc: `Color used to find custom glyph boundaries when importing SVGs` - }; - this.infos[this.AUTOSAVE] = { - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `Autosave`, - desc: `Toggle auto-save feature on/off` - }; - this.infos[this.AUTOSAVE_TIMER] = { - inputType: inputs.Slider, - label: `Autosave interval`, - inputOptions: { min: 1, max: 60, size: ui.FLAGS.SIZE_XS }, - desc: `Interval at which the autosave triggers (in minutes).\nMin 1min, max 60min.` - }; - this.infos[this.MANUAL_PREVIEW_REFRESH_THRESHOLD] = { - inputType: inputs.Slider, - label: `Pangram max glyph`, - inputOptions: { min: 0, max: UNICODE.MAX_GLYPH_COUNT, size: ui.FLAGS.SIZE_XS }, - desc: `Number of glyphs within the font after which the pangram stops automatically updating the preview.\nMassive font auto-refresh can cause a serious performance hit, or simply crash the app.\nMin 0, max ${UNICODE.MAX_GLYPH_COUNT}.` - }; - - //Third parties - this.infos[this.SVG_EDITOR_PATH] = { - inputType: inputs.File, - label: `SVG Editor Executable`, - inputOptions: { placeholder: `path required`, size: ui.FLAGS.SIZE_XS }, - desc: `Path to your local Illustrator app executable.\nRequired for live editing.` - }; - this.infos[this.ILLU_PATH] = { - inputType: inputs.File, - label: `Illustrator Executable`, - inputOptions: { placeholder: `path required`, size: ui.FLAGS.SIZE_XS }, - desc: `Path to your local Adobe© Illustrator app executable.\nRequired for advanced automation.` - }; - - } - - static GetInfos(p_id) { - return p_id in this.infos ? this.infos[p_id] : null; - } - -} +const IDS_PREFS = {}; + + +IDS_PREFS.MARK_COLOR = Object.freeze('markColor'); +IDS_PREFS.SVG_EDITOR_PATH = Object.freeze('svgEditorPath'); +IDS_PREFS.ILLU_PATH = Object.freeze('illustratorPath'); + +IDS_PREFS.AUTOSAVE = Object.freeze('doAutoSave'); +IDS_PREFS.AUTOSAVE_TIMER = Object.freeze('autosaveTimer'); + +IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD = Object.freeze('manPrevRefresh'); + +IDS_PREFS.GROUP_DISPLAY = Object.freeze('group:display'); +IDS_PREFS.GROUP_RESOURCES = Object.freeze('group:resources'); +IDS_PREFS.GROUP_THIRD_PARTIES = Object.freeze('group:thirdparties'); +IDS_PREFS.GROUP_DEFAULTS = Object.freeze('group:defaults'); + +nkm.data.RegisterDescriptors({ + + [IDS_PREFS.MARK_COLOR]: { + inputType: inputs.Color, + label: `Mark Color`, + inputOptions: { /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Color used to find custom glyph boundaries when importing SVGs` + }, + + [IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD]: { + inputType: inputs.Slider, + label: `Pangram max glyph`, + inputOptions: { min: 0, max: UNICODE.MAX_GLYPH_COUNT, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Number of glyphs within the font after which the pangram stops automatically updating the preview.\nMassive font auto-refresh can cause a serious performance hit, or simply crash the app.\nMin 0, max ${UNICODE.MAX_GLYPH_COUNT}.` + }, + + [IDS_PREFS.SVG_EDITOR_PATH]: { + inputType: inputs.File, + label: `SVG Editor Executable`, + inputOptions: { placeholder: `path required`, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Path to your local Illustrator app executable.\nRequired for live editing.` + }, + + [IDS_PREFS.ILLU_PATH]: { + inputType: inputs.File, + label: `Illustrator Executable`, + inputOptions: { placeholder: `path required`, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Path to your local Adobe© Illustrator app executable.\nRequired for advanced automation.` + }, + + // Groups + + [IDS_PREFS.GROUP_DISPLAY]: { + title: `DIsplay`, + icon: `gear`, + desc: `` + }, + [IDS_PREFS.GROUP_RESOURCES]: { + title: `Resources`, + icon: `directory-download-small`, + desc: `` + }, + [IDS_PREFS.GROUP_THIRD_PARTIES]: { + title: `Third-parties`, + icon: `link`, + desc: `` + }, + [IDS_PREFS.GROUP_DEFAULTS]: { + title: `Defaults`, + icon: `font`, + desc: `` + }, + +}); + + module.exports = IDS_PREFS; \ No newline at end of file diff --git a/app/js/data/ids.js b/app/js/data/ids.js index 9e9e4bc..b7bc881 100644 --- a/app/js/data/ids.js +++ b/app/js/data/ids.js @@ -15,666 +15,685 @@ const ENUMS = require(`./enums`); class IDS { constructor() { } - static infos = {}; - static EMPTY_PATH_CONTENT = `M 0 0 L 0 0 z`; static isEmptyPathContent(p_path) { return p_path == this.EMPTY_PATH_CONTENT || p_path == `M0 0L0 0z`; } //#region family properties - static ID = 'id'; - static FAMILY = 'font-family'; - static METADATA = 'metadata'; - static COPYRIGHT = 'copyright'; - static DESCRIPTION = 'description'; - static URL = 'url'; - static VERSION = 'version'; - static ALPHABETIC = 'alphabetic'; - static MATHEMATICAL = 'mathematical'; - static IDEOGRAPHIC = 'ideographic'; + static ID = Object.freeze('id'); + static FAMILY = Object.freeze('font-family'); + static METADATA = Object.freeze('metadata'); + static COPYRIGHT = Object.freeze('copyright'); + static DESCRIPTION = Object.freeze('description'); + static URL = Object.freeze('url'); + static VERSION = Object.freeze('version'); + static ALPHABETIC = Object.freeze('alphabetic'); + static MATHEMATICAL = Object.freeze('mathematical'); + static IDEOGRAPHIC = Object.freeze('ideographic'); static { - - this.infos[this.ID] = { - inputType: inputs.Text, - label: `Identifier`, - inputOptions: { placeholder: `...` }, - desc: `` - }; - - this.infos[this.FAMILY] = { - inputType: inputs.Text, - label: `Family name`, - inputOptions: { placeholder: `MkFamily`, maxlength: 32 }, - desc: `` - }; - - this.infos[this.METADATA] = { - inputType: inputs.Textarea, - label: `Metadata`, - inputOptions: { placeholder: `metadata` }, - desc: `` - }; - - this.infos[this.COPYRIGHT] = { - inputType: inputs.Text, - label: `Copyright`, - inputOptions: { placeholder: `copyright` }, - desc: `` - }; - - this.infos[this.DESCRIPTION] = { - inputType: inputs.Textarea, - label: `Description`, - inputOptions: { placeholder: `Short description` }, - desc: `` - }; - - this.infos[this.URL] = { - inputType: inputs.Text, - label: `URL`, - inputOptions: { placeholder: `www.website.com` }, - desc: `` - }; - - this.infos[this.VERSION] = { - inputType: inputs.Text, - label: `Version`, - inputOptions: { placeholder: `1.0`, maxlength: 12 }, - desc: `` - }; - - this.infos[this.ALPHABETIC] = { - inputType: inputs.NumberDrag, - desc: `` - }; - - this.infos[this.MATHEMATICAL] = { - inputType: inputs.NumberDrag, - desc: `` - }; - - this.infos[this.IDEOGRAPHIC] = { - inputType: inputs.NumberDrag, - desc: `` - }; - + nkm.data.RegisterDescriptors({ + + [this.ID]: { + inputType: inputs.Text, + label: `Identifier`, + inputOptions: { placeholder: `...` }, + desc: `` + }, + + [this.FAMILY]: { + inputType: inputs.Text, + label: `Family name`, + inputOptions: { placeholder: `MkFamily`, maxlength: 32 }, + desc: `` + }, + + [this.METADATA]: { + inputType: inputs.Textarea, + label: `Metadata`, + inputOptions: { placeholder: `metadata` }, + desc: `` + }, + + [this.COPYRIGHT]: { + inputType: inputs.Text, + label: `Copyright`, + inputOptions: { placeholder: `copyright` }, + desc: `` + }, + + [this.DESCRIPTION]: { + inputType: inputs.Textarea, + label: `Description`, + inputOptions: { placeholder: `Short description` }, + desc: `` + }, + + [this.URL]: { + inputType: inputs.Text, + label: `URL`, + inputOptions: { placeholder: `www.website.com` }, + desc: `` + }, + + [this.VERSION]: { + inputType: inputs.Text, + label: `Version`, + inputOptions: { placeholder: `1.0`, maxlength: 12 }, + desc: `` + }, + + [this.ALPHABETIC]: { + inputType: inputs.NumberDrag, + desc: `` + }, + + [this.MATHEMATICAL]: { + inputType: inputs.NumberDrag, + desc: `` + }, + + [this.IDEOGRAPHIC]: { + inputType: inputs.NumberDrag, + desc: `` + }, + + }); } //#endregion //#region Family metrics - static WEIGHT_CLASS = 'weight'; - static FONT_STYLE = 'style'; - static EM_UNITS = 'em'; - static CAP_HEIGHT = 'cap-height'; - static X_HEIGHT = 'x-height'; - static ASCENT = 'ascent'; - static DESCENT = 'descent'; - static HANGING = 'hanging'; - static BASELINE = 'baseline'; - static UNDERLINE_THICKNESS = 'u-thickness'; - static UNDERLINE_POSITION = 'u-position'; - static EM_RESAMPLE = 'em-resample'; - static ASC_RESAMPLE = 'asc-resample'; - static MONOSPACE = 'monospace'; + static WEIGHT_CLASS = Object.freeze('weight'); + static FONT_STYLE = Object.freeze('style'); + static EM_UNITS = Object.freeze('em'); + static CAP_HEIGHT = Object.freeze('cap-height'); + static X_HEIGHT = Object.freeze('x-height'); + static ASCENT = Object.freeze('ascent'); + static DESCENT = Object.freeze('descent'); + static HANGING = Object.freeze('hanging'); + static BASELINE = Object.freeze('baseline'); + static UNDERLINE_THICKNESS = Object.freeze('u-thickness'); + static UNDERLINE_POSITION = Object.freeze('u-position'); + static EM_RESAMPLE = Object.freeze('em-resample'); + static ASC_RESAMPLE = Object.freeze('asc-resample'); + static MONOSPACE = Object.freeze('monospace'); static { - - this.infos[this.WEIGHT_CLASS] = { - inputType: inputs.Select, - enum: ENUMS.WEIGHTS, - label: `Weight class`, - inputOptions: { catalog: ENUMS.WEIGHTS, itemKey: nkm.com.IDS.VALUE }, - desc: `Normal, Bold, Heavy, Ultra-Heavy`, - }; - - this.infos[this.FONT_STYLE] = { - inputType: inputs.Text, - label: `Sub Family`, - inputOptions: { placeholder: `Regular`, maxlength: 32 }, - desc: `Regular, Italic, Condensed...` - }; - - this.infos[this.EM_UNITS] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `EM Size`, - inputOptions: { step: 1, min: 20, max: 16000 }, - desc: `specifies the number of coordinate units on the "em square", an abstract square whose height is the intended distance between lines of type in the same type size.\nThis is the size of the design grid on which glyphs are laid out.`, - }; - - this.infos[this.CAP_HEIGHT] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `CAP height`, - desc: `defines the height of uppercase glyphs of the font within the font coordinate system.` - }; - - this.infos[this.X_HEIGHT] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `X height`, - desc: `indicates the height of lowercase glyphs in the font within the font coordinate.` - }; - - this.infos[this.ASCENT] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Ascender`, - inputOptions: { step: 1, min: 0, max: 16000 }, - desc: `defines the maximum unaccented height of the font within the font coordinate system.\nRelative to baseline.` - }; - - this.infos[this.DESCENT] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Descender`, - inputOptions: { step: 1, min: -16000, max: 0 }, - desc: `defines the maximum unaccented depth of the font.\nRelative to baseline.` - }; - - this.infos[this.BASELINE] = { - recompute: true, - inputType: inputs.NumberDrag, - label: `Baseline`, - inputOptions: { step: 1, min: 0, max: 16000 }, - desc: `defines the position of the font baseline within the font coordinate system.` - }; - - this.infos[this.UNDERLINE_THICKNESS] = { - inputType: inputs.NumberDrag, - label: `Underline thickness`, - desc: `...` - }; - - this.infos[this.UNDERLINE_POSITION] = { - inputType: inputs.NumberDrag, - label: `Underline position`, - desc: `...` - }; - - this.infos[this.HANGING] = { - inputType: inputs.NumberDrag, - desc: `` - }; - - this.infos[this.EM_RESAMPLE] = { - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `EM Resample`, - desc: `If enabled, changing the EM Size will scale other metrics & glyphs accordingly.\nDisable this if you want to affect rendering size only.` - }; - - this.infos[this.ASC_RESAMPLE] = { - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `Scale X+Cap`, - desc: `If enabled, changing the Ascender will scale x-height & cap-height accordingly.` - }; - - this.infos[this.MONOSPACE] = { - recompute: true, - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `Monospace`, - desc: `If enabled, glyphs width will be overriden by the default font width value.\nOverride happen at export time and does not affect custom data.` - }; - + nkm.data.RegisterDescriptors({ + + [this.WEIGHT_CLASS]: { + inputType: inputs.Select, + enum: ENUMS.WEIGHTS, + label: `Weight class`, + inputOptions: { catalog: ENUMS.WEIGHTS, itemKey: nkm.com.IDS.VALUE }, + desc: `Normal, Bold, Heavy, Ultra-Heavy`, + }, + + [this.FONT_STYLE]: { + inputType: inputs.Text, + label: `Sub Family`, + inputOptions: { placeholder: `Regular`, maxlength: 32 }, + desc: `Regular, Italic, Condensed...` + }, + + [this.EM_UNITS]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `EM Size`, + inputOptions: { step: 1, min: 20, max: 16000 }, + desc: `specifies the number of coordinate units on the "em square", an abstract square whose height is the intended distance between lines of type in the same type size.\nThis is the size of the design grid on which glyphs are laid out.`, + }, + + [this.CAP_HEIGHT]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `CAP height`, + desc: `defines the height of uppercase glyphs of the font within the font coordinate system.` + }, + + [this.X_HEIGHT]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `X height`, + desc: `indicates the height of lowercase glyphs in the font within the font coordinate.` + }, + + [this.ASCENT]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Ascender`, + inputOptions: { step: 1, min: 0, max: 16000 }, + desc: `defines the maximum unaccented height of the font within the font coordinate system.\nRelative to baseline.` + }, + + [this.DESCENT]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Descender`, + inputOptions: { step: 1, min: -16000, max: 0 }, + desc: `defines the maximum unaccented depth of the font.\nRelative to baseline.` + }, + + [this.BASELINE]: { + recompute: true, + inputType: inputs.NumberDrag, + label: `Baseline`, + inputOptions: { step: 1, min: 0, max: 16000 }, + desc: `defines the position of the font baseline within the font coordinate system.` + }, + + [this.UNDERLINE_THICKNESS]: { + inputType: inputs.NumberDrag, + label: `Underline thickness`, + desc: `...` + }, + + [this.UNDERLINE_POSITION]: { + inputType: inputs.NumberDrag, + label: `Underline position`, + desc: `...` + }, + + [this.HANGING]: { + inputType: inputs.NumberDrag, + desc: `` + }, + + [this.EM_RESAMPLE]: { + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + label: `EM Resample`, + desc: `If enabled, changing the EM Size will scale other metrics & glyphs accordingly.\nDisable this if you want to affect rendering size only.` + }, + + [this.ASC_RESAMPLE]: { + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + label: `Scale X+Cap`, + desc: `If enabled, changing the Ascender will scale x-height & cap-height accordingly.` + }, + + [this.MONOSPACE]: { + recompute: true, + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + label: `Monospace`, + desc: `If enabled, glyphs width will be overriden by the default font width value.\nOverride happen at export time and does not affect custom data.` + }, + + }); } //#endregion //#region Glyph properties - static H_ORIGIN_X = 'horiz-origin-x'; - static H_ORIGIN_Y = 'horiz-origin-y'; - static WIDTH = 'width'; - static EXPORTED_WIDTH = 'ew'; - static V_ORIGIN_X = 'vert-origin-x'; - static V_ORIGIN_Y = 'vert-origin-y'; - static HEIGHT = 'height'; - static PATH = 'path'; - static PATH_DATA = 'path-data'; - static GLYPH_NAME = 'name'; - static UNICODE = 'unicode'; + static H_ORIGIN_X = Object.freeze('horiz-origin-x'); + static H_ORIGIN_Y = Object.freeze('horiz-origin-y'); + static WIDTH = Object.freeze('width'); + static EXPORTED_WIDTH = Object.freeze('ew'); + static V_ORIGIN_X = Object.freeze('vert-origin-x'); + static V_ORIGIN_Y = Object.freeze('vert-origin-y'); + static HEIGHT = Object.freeze('height'); + + static PATH = Object.freeze('path'); + static PATH_DATA = Object.freeze('path-data'); + static GLYPH_NAME = Object.freeze('name'); + static UNICODE = Object.freeze('unicode'); - static INVERTED = 'inverted'; + static INVERTED = Object.freeze('inverted'); static { - /* - this.infos[this.H_ORIGIN_X] = { - inputType: inputs.NumberDrag, - desc: `indicates the x-coordinate in the font coordinate system of the origin of a glyph to be used when drawing horizontally oriented text.` - }; - - this.infos[this.H_ORIGIN_Y] = { - inputType: inputs.NumberDrag, - desc: `indicates the y-coordinate in the font coordinate system of the origin of a glyph to be used when drawing horizontally oriented text.` - }; - */ - - this.infos[this.WIDTH] = { - recompute: true, - inputType: inputs.NumberDrag, - inputOptions: { placeholder: `· · ·`, min: 0 }, - label: `Width`, - desc: `indicates the horizontal advance after rendering a glyph in horizontal orientation.` - }; - this.infos[this.EXPORTED_WIDTH] = { - recompute: true, - label: `...`, - desc: `...` - }; - - /* - this.infos[this.V_ORIGIN_X] = { - inputType: inputs.NumberDrag, - desc: `indicates the x-coordinate in the font coordinate system of the origin of a glyph to be used when drawing vertically oriented text.` - }; - - this.infos[this.V_ORIGIN_Y] = { - inputType: inputs.NumberDrag, - desc: `indicates the y-coordinate in the font coordinate system of the origin of a glyph to be used when drawing vertically oriented text.` - }; - */ - - this.infos[this.HEIGHT] = { - recompute: true, - inputType: inputs.NumberDrag, - inputOptions: { placeholder: `· · ·` }, - label: `Height`, - desc: `indicates the vertical advance after rendering a glyph in vertical orientation.` - }; - - this.infos[this.GLYPH_NAME] = { - inputType: inputs.Text, - label: `Glyph name`, - desc: `Glyph name for search purposes & future uses` - }; - - this.infos[this.UNICODE] = { - recompute: true, - inputType: inputs.Text, - desc: `` - }; - - this.infos[this.PATH] = { - recompute: true, - }; - - this.infos[this.PATH_DATA] = { - recompute: true, - }; - - this.infos[this.INVERTED] = { - recompute: true, - label: `Reverse path`, - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - desc: `Whether or not to reverse the order of points withing the path. This effectively allows you to create "holes".` - }; + nkm.data.RegisterDescriptors({ + + /* + [this.H_ORIGIN_X]: { + inputType: inputs.NumberDrag, + desc: `indicates the x-coordinate in the font coordinate system of the origin of a glyph to be used when drawing horizontally oriented text.` + }, + + [this.H_ORIGIN_Y]: { + inputType: inputs.NumberDrag, + desc: `indicates the y-coordinate in the font coordinate system of the origin of a glyph to be used when drawing horizontally oriented text.` + }, + */ + + [this.WIDTH]: { + recompute: true, + inputType: inputs.NumberDrag, + inputOptions: { placeholder: `· · ·`, min: 0 }, + label: `Width`, + desc: `indicates the horizontal advance after rendering a glyph in horizontal orientation.` + }, + + [this.EXPORTED_WIDTH]: { + recompute: true, + label: `...`, + desc: `...` + }, + + /* + [this.V_ORIGIN_X]: { + inputType: inputs.NumberDrag, + desc: `indicates the x-coordinate in the font coordinate system of the origin of a glyph to be used when drawing vertically oriented text.` + }, + + [this.V_ORIGIN_Y]: { + inputType: inputs.NumberDrag, + desc: `indicates the y-coordinate in the font coordinate system of the origin of a glyph to be used when drawing vertically oriented text.` + }, + */ + + [this.HEIGHT]: { + recompute: true, + inputType: inputs.NumberDrag, + inputOptions: { placeholder: `· · ·` }, + label: `Height`, + desc: `indicates the vertical advance after rendering a glyph in vertical orientation.` + }, + + [this.GLYPH_NAME]: { + inputType: inputs.Text, + label: `Glyph name`, + desc: `Glyph name for search purposes & future uses` + }, + + [this.UNICODE]: { + recompute: true, + inputType: inputs.Text, + desc: `` + }, + + [this.PATH]: { + recompute: true, + }, + + [this.PATH_DATA]: { + recompute: true, + }, + + [this.INVERTED]: { + recompute: true, + label: `Reverse path`, + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + desc: `Whether or not to reverse the order of points withing the path. This effectively allows you to create "holes".` + }, + + }); } //#endregion //#region Misc properties - static CUSTOM_WIDTH = 'custom-width'; + static CUSTOM_WIDTH = Object.freeze('custom-width'); - static COLOR_PREVIEW = 'color-preview'; + static COLOR_PREVIEW = Object.freeze('color-preview'); - static PREVIEW_SIZE = 'preview-size'; + static PREVIEW_SIZE = Object.freeze('preview-size'); - static OUT_OF_BOUNDS = 'out-of-bounds'; - static EMPTY = 'empty'; - static DO_EXPORT = 'do-export'; + static OUT_OF_BOUNDS = Object.freeze('out-of-bounds'); + static EMPTY = Object.freeze('empty'); + static DO_EXPORT = Object.freeze('do-export'); - static SHOW_ALL_LAYERS = 'show-all-layers'; + static SHOW_ALL_LAYERS = Object.freeze('show-all-layers'); - static FLATTEN_LAYERS = 'flatten-layers'; - static FLATTEN_MODE = 'flatten-mode'; + static FLATTEN_LAYERS = Object.freeze('flatten-layers'); + static FLATTEN_MODE = Object.freeze('flatten-mode'); static { - - this.infos[this.COLOR_PREVIEW] = { - recompute: true, - inputType: inputs.Color, - label: `Preview color`, - inputOptions: { changeOnInput: true }, - desc: `Define the color of the glyphs in the editor.` - }; - - this.infos[this.PREVIEW_SIZE] = { - recompute: true, - inputType: inputs.SliderOnly, - label: `Preview size`, - inputOptions: { changeOnInput: true, step: 1, min: 70, max: 250, size: ui.FLAGS.SIZE_XS }, - desc: `Define the size of individual items in the list.` - }; - - this.infos[this.DO_EXPORT] = { - recompute: true, - label: `Export glyph`, - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - desc: `Whether this glyph will be added to the exported font or not.` - }; - - this.infos[this.OUT_OF_BOUNDS] = { - label: `Out-of-bounds`, - desc: `Separator character in filenames.\nUsed to separate unicode values\ni.e char_U+0000, char_U+0000_U+0000, char_l_i_g_a` - }; - - this.infos[this.EMPTY] = { - label: `Empty`, - desc: `` - }; - - this.infos[this.SHOW_ALL_LAYERS] = { - label: `Show partial matches`, - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - desc: `Show all shared components (at least used twice), not just the ones shared by every glyph in the selection.` - }; - - this.infos[this.FLATTEN_LAYERS] = { - recompute: true, - label: `Flatten comps`, - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - desc: `Will flatten layers as if they were a single block.\nUses EM Square as transform space.` - }; - this.infos[this.FLATTEN_MODE] = { - inputType: inputs.Select, - recompute: true, - enum: ENUMS.WEIGHTS, - label: `Flattening mode`, - inputOptions: { catalog: ENUMS.FLATTEN_MODE, itemKey: nkm.com.IDS.VALUE, placeholder: `· · ·` }, - desc: `Defines how the boundaries of the flattened result are computed` - }; - + nkm.data.RegisterDescriptors({ + + [this.COLOR_PREVIEW]: { + recompute: true, + inputType: inputs.Color, + label: `Preview color`, + inputOptions: { changeOnInput: true }, + desc: `Define the color of the glyphs in the editor.` + }, + + [this.PREVIEW_SIZE]: { + recompute: true, + inputType: inputs.SliderOnly, + label: `Preview size`, + inputOptions: { changeOnInput: true, step: 1, min: 70, max: 250, size: ui.FLAGS.SIZE_XS }, + desc: `Define the size of individual items in the list.` + }, + + [this.DO_EXPORT]: { + recompute: true, + label: `Export glyph`, + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + desc: `Whether this glyph will be added to the exported font or not.` + }, + + [this.OUT_OF_BOUNDS]: { + label: `Out-of-bounds`, + desc: `Separator character in filenames.\nUsed to separate unicode values\ni.e char_U+0000, char_U+0000_U+0000, char_l_i_g_a` + }, + + [this.EMPTY]: { + label: `Empty`, + desc: `` + }, + + [this.SHOW_ALL_LAYERS]: { + label: `Show partial matches`, + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + desc: `Show all shared components (at least used twice), not just the ones shared by every glyph in the selection.` + }, + + [this.FLATTEN_LAYERS]: { + recompute: true, + label: `Flatten comps`, + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + desc: `Will flatten layers as if they were a single block.\nUses EM Square as transform space.` + }, + + [this.FLATTEN_MODE]: { + inputType: inputs.Select, + recompute: true, + enum: ENUMS.WEIGHTS, + label: `Flattening mode`, + inputOptions: { catalog: ENUMS.FLATTEN_MODE, itemKey: nkm.com.IDS.VALUE, placeholder: `· · ·` }, + desc: `Defines how the boundaries of the flattened result are computed` + }, + + }); } //#endregion //#region Transform properties - static TR_BOUNDS_MODE = 'bounds'; - static TR_SCALE_MODE = 'scale'; - static TR_SCALE_FACTOR = 'scale-factor'; - static TR_NRM_FACTOR = 'nrm-factor'; + static TR_BOUNDS_MODE = Object.freeze('bounds'); + static TR_SCALE_MODE = Object.freeze('scale'); + static TR_SCALE_FACTOR = Object.freeze('scale-factor'); + static TR_NRM_FACTOR = Object.freeze('nrm-factor'); - static TR_VER_ALIGN = 'valign'; - static TR_HOR_ALIGN = 'halign'; - static TR_ANCHOR = 'anchor'; + static TR_VER_ALIGN = Object.freeze('valign'); + static TR_HOR_ALIGN = Object.freeze('halign'); + static TR_ANCHOR = Object.freeze('anchor'); - static TR_WIDTH_SHIFT = 'xshift'; - static TR_WIDTH_PUSH = 'xpush'; + static TR_WIDTH_SHIFT = Object.freeze('xshift'); + static TR_WIDTH_PUSH = Object.freeze('xpush'); - static TR_AUTO_WIDTH = 'auto-w'; + static TR_AUTO_WIDTH = Object.freeze('auto-w'); - static TR_Y_OFFSET = 'yoffset'; - static TR_X_OFFSET = 'xoffset'; + static TR_Y_OFFSET = Object.freeze('yoffset'); + static TR_X_OFFSET = Object.freeze('xoffset'); - static TR_MIRROR = 'mirror'; - static TR_ROTATION = 'rot'; - static TR_ROTATION_ANCHOR = 'rot-anchor'; - static TR_SKEW_X = 'skew-x'; - static TR_SKEW_Y = 'skew-y'; - static TR_SKEW_ROT_ORDER = 'skew-rot-order'; + static TR_MIRROR = Object.freeze('mirror'); + static TR_ROTATION = Object.freeze('rot'); + static TR_ROTATION_ANCHOR = Object.freeze('rot-anchor'); + static TR_SKEW_X = Object.freeze('skew-x'); + static TR_SKEW_Y = Object.freeze('skew-y'); + static TR_SKEW_ROT_ORDER = Object.freeze('skew-rot-order'); static { - - this.infos[this.TR_BOUNDS_MODE] = { - transform: true, - enum: ENUMS.BOUNDS, - inputType: inputs.InlineSelect, - label: `Glyph bounds`, - inputOptions: { catalog: ENUMS.BOUNDS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `The reference bounds used to compute transformations.` - }; - - this.infos[this.TR_SCALE_MODE] = { - transform: true, - enum: ENUMS.SCALE, - inputType: inputs.InlineSelect, - label: `Scale mode`, - inputOptions: { catalog: ENUMS.SCALE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `Scale` - }; - - this.infos[this.TR_SCALE_FACTOR] = { - transform: true, - inputType: inputs.NumberDrag, - label: `Scale factor`, - inputOptions: { min: 0.01, max: 100, step: 0.01, size: ui.FLAGS.SIZE_XS }, - desc: `Factor by which the input vector will be scaled.` - }; - - this.infos[this.TR_NRM_FACTOR] = { - transform: true, - inputType: inputs.NumberDrag, - label: `Margin`, - inputOptions: { min: -1, max: 1, step: 0.01, size: ui.FLAGS.SIZE_XS }, - desc: `Margin to apply to the glyph when normalizing it.` - }; - - this.infos[this.TR_WIDTH_SHIFT] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Shift`, - inputOptions: { step: 1, min: -16000, max: 16000, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `Append empty space before the glyph.` - }; - this.infos[this.TR_WIDTH_PUSH] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Push`, - inputOptions: { step: 1, min: -16000, max: 16000, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `Add empty space after the glyph.` - }; - this.infos[this.TR_AUTO_WIDTH] = { - transform: true, - inputType: inputs.Boolean, - label: `Automatic Width`, - inputOptions: { size: ui.FLAGS.SIZE_XS, placeholder: `· · ·` }, - desc: `If enabled, the glyph' width is equal to its asset width + shift + push.\nOtherwise the value is expected to be either manual, or inherited from the family Metrics.` - }; - - - this.infos[this.TR_Y_OFFSET] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Vertical Offset`, - inputOptions: { step: 1, min: -16000, max: 16000, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `A vertical offset applied to the glyph position after everything else is computed.` - }; - this.infos[this.TR_X_OFFSET] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Horizontal Offset`, - inputOptions: { step: 1, min: -16000, max: 16000, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `An horizontal offset applied to the glyph position after everything else is computed.` - }; - - this.infos[this.TR_VER_ALIGN] = { - transform: true, - enum: ENUMS.VALIGN, - inputType: inputs.InlineSelect, - label: `Align`, - inputOptions: { catalog: ENUMS.VALIGN, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `...` - }; - - this.infos[this.TR_HOR_ALIGN] = { - transform: true, - enum: ENUMS.HALIGN, - inputType: inputs.InlineSelect, - label: `Align`, - inputOptions: { catalog: ENUMS.HALIGN, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `...` - }; - - this.infos[this.TR_ANCHOR] = { - transform: true, - enum: ENUMS.ANCHORS, - inputType: inputs.Anchor, - label: `Anchor`, - //inputOptions: { catalog: ENUMS.ANCHORS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `Defines the anchor point of the glyph within the typographic space.\n Used as reference for computing transformations.` - }; - - - this.infos[this.TR_MIRROR] = { - transform: true, - enum: ENUMS.MIRROR, - inputType: inputs.InlineSelect, - label: `Mirror`, - inputOptions: { catalog: ENUMS.MIRROR, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `...` - }; - this.infos[this.TR_ROTATION] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Rotation`, - inputOptions: { step: 0.01, min: -180, max: 180, size: ui.FLAGS.SIZE_XS, placeholder: `· · ·` }, - desc: `Rotate the glyph around its anchor point.` - }; - this.infos[this.TR_ROTATION_ANCHOR] = { - transform: true, - recompute: true, - inputType: inputs.Anchor, - label: `Rotation anchor`, - //inputOptions: { changeOnInput: true, step: 0.01, min: -180, max: 180, size: ui.FLAGS.SIZE_XS }, - desc: `Defines the rotation anchor of the glyph` - }; - - this.infos[this.TR_SKEW_X] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Skew X`, - inputOptions: { step: 0.1, min: -85, max: 85, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `Skews the glyph horizontally.` - }; - this.infos[this.TR_SKEW_Y] = { - transform: true, - recompute: true, - inputType: inputs.NumberDrag, - label: `Skew Y`, - inputOptions: { step: 0.1, min: -85, max: 85, size: ui.FLAGS.SIZE_XXS, placeholder: `· · ·` }, - desc: `Skews the glyph vertically.` - }; - this.infos[this.TR_SKEW_ROT_ORDER] = { - inputType: inputs.Select, - enum: ENUMS.WEIGHTS, - label: `Rot/Skew order`, - inputOptions: { catalog: ENUMS.SKR_ORDER, itemKey: nkm.com.IDS.VALUE, placeholder: `· · ·` }, - desc: `Normal, Bold, Heavy, Ultra-Heavy`, - }; - + nkm.data.RegisterDescriptors({ + + [this.TR_BOUNDS_MODE]: { + transform: true, + enum: ENUMS.BOUNDS, + inputType: inputs.SelectInline, + label: `Glyph bounds`, + inputOptions: { catalog: ENUMS.BOUNDS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `The reference bounds used to compute transformations.` + }, + + [this.TR_SCALE_MODE]: { + transform: true, + enum: ENUMS.SCALE, + inputType: inputs.SelectInline, + label: `Scale mode`, + inputOptions: { catalog: ENUMS.SCALE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `Scale` + }, + + [this.TR_SCALE_FACTOR]: { + transform: true, + inputType: inputs.NumberDrag, + label: `Scale factor`, + inputOptions: { min: 0.01, max: 100, step: 0.01, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Factor by which the input vector will be scaled.` + }, + + [this.TR_NRM_FACTOR]: { + transform: true, + inputType: inputs.NumberDrag, + label: `Margin`, + inputOptions: { min: -1, max: 1, step: 0.01, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Margin to apply to the glyph when normalizing it.` + }, + + [this.TR_WIDTH_SHIFT]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Shift`, + inputOptions: { step: 1, min: -16000, max: 16000, placeholder: `· · ·` }, + desc: `Append empty space before the glyph.` + }, + + [this.TR_WIDTH_PUSH]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Push`, + inputOptions: { step: 1, min: -16000, max: 16000, placeholder: `· · ·` }, + desc: `Add empty space after the glyph.` + }, + + [this.TR_AUTO_WIDTH]: { + transform: true, + valueType:nkm.data.TYPES.BOOLEAN, + label: `Automatic Width`, + inputOptions: { placeholder: `· · ·`, size: ui.FLAGS.SIZE_XS }, + desc: `If enabled, the glyph' width is equal to its asset width + shift + push.\nOtherwise the value is expected to be either manual, or inherited from the family Metrics.` + }, + + [this.TR_X_OFFSET]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Horizontal Offset`, + inputOptions: { step: 1, min: -16000, max: 16000, placeholder: `· · ·` }, + desc: `An horizontal offset applied to the glyph position after everything else is computed.` + }, + + [this.TR_Y_OFFSET]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Vertical Offset`, + inputOptions: { step: 1, min: -16000, max: 16000, placeholder: `· · ·` }, + desc: `A vertical offset applied to the glyph position after everything else is computed.` + }, + + [this.TR_VER_ALIGN]: { + transform: true, + enum: ENUMS.VALIGN, + inputType: inputs.SelectInline, + label: `Align`, + inputOptions: { catalog: ENUMS.VALIGN, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `...` + }, + + [this.TR_HOR_ALIGN]: { + transform: true, + enum: ENUMS.HALIGN, + inputType: inputs.SelectInline, + label: `Align`, + inputOptions: { catalog: ENUMS.HALIGN, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `...` + }, + + [this.TR_ANCHOR]: { + transform: true, + enum: ENUMS.ANCHORS, + inputType: inputs.Anchor, + label: `Anchor`, + //inputOptions: { catalog: ENUMS.ANCHORS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `Defines the anchor point of the glyph within the typographic space.\n Used as reference for computing transformations.` + }, + + [this.TR_MIRROR]: { + transform: true, + enum: ENUMS.MIRROR, + inputType: inputs.SelectInline, + label: `Mirror`, + inputOptions: { catalog: ENUMS.MIRROR, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `...` + }, + + [this.TR_ROTATION]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Rotation`, + inputOptions: { step: 0.01, min: -180, max: 180, placeholder: `· · ·`, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Rotate the glyph around its anchor point.` + }, + + [this.TR_ROTATION_ANCHOR]: { + transform: true, + recompute: true, + inputType: inputs.Anchor, + label: `Rotation anchor`, + //inputOptions: { changeOnInput: true, step: 0.01, min: -180, max: 180, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Defines the rotation anchor of the glyph` + }, + + [this.TR_SKEW_X]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Skew X`, + inputOptions: { step: 0.1, min: -85, max: 85, placeholder: `· · ·` }, + desc: `Skews the glyph horizontally.` + }, + + [this.TR_SKEW_Y]: { + transform: true, + recompute: true, + inputType: inputs.NumberDrag, + label: `Skew Y`, + inputOptions: { step: 0.1, min: -85, max: 85, placeholder: `· · ·` }, + desc: `Skews the glyph vertically.` + }, + + [this.TR_SKEW_ROT_ORDER]: { + inputType: inputs.Select, + enum: ENUMS.WEIGHTS, + label: `Rot/Skew order`, + inputOptions: { catalog: ENUMS.SKR_ORDER, itemKey: nkm.com.IDS.VALUE, placeholder: `· · ·` }, + desc: `...`, + }, + + }); } //#endregion //#region Layer properties - static TR_LYR_BOUNDS_MODE = 'lyr-bounds'; - static TR_LYR_SCALE_MODE = 'lyr-scale'; - static TR_LYR_SCALE_FACTOR = 'lyr-scale-factor'; + static TR_LYR_BOUNDS_MODE = Object.freeze('lyr-bounds'); + static TR_LYR_SCALE_MODE = Object.freeze('lyr-scale'); + static TR_LYR_SCALE_FACTOR = Object.freeze('lyr-scale-factor'); - static TR_LYR_SELF_ANCHOR = 'lyr-anchor'; + static TR_LYR_SELF_ANCHOR = Object.freeze('lyr-anchor'); - static LYR_CHARACTER_NAME = 'lyr-char'; - static LYR_INDEX = 'lyr-index'; - static CIRCULAR_REFERENCE = 'circ-dep'; + static LYR_CHARACTER_NAME = Object.freeze('lyr-char'); + static LYR_INDEX = Object.freeze('lyr-index'); + static CIRCULAR_REFERENCE = Object.freeze('circ-dep'); - static LYR_USE_PREV_LAYER = 'lyr-bounds-lyr'; - static LYR_PREV_LAYER_NAME = 'lyr-ref-lyr'; - static LYR_IS_CONTROL_LAYER = 'lyr-control'; - static LYR_CUSTOM_ID = 'lyr-id'; + static LYR_USE_PREV_LAYER = Object.freeze('lyr-bounds-lyr'); + static LYR_PREV_LAYER_NAME = Object.freeze('lyr-ref-lyr'); + static LYR_IS_CONTROL_LAYER = Object.freeze('lyr-control'); + static LYR_CUSTOM_ID = Object.freeze('lyr-id'); static { - - this.infos[this.LYR_CHARACTER_NAME] = { - inputType: inputs.Text, - inputOptions: { placeholder: `A, U+0041, ...`, nullPlaceholder:`Mixed...` }, - label: `Import glyph`, - desc: `Single character, ligature, or U+0000 formatted name` - }; - - this.infos[this.LYR_CUSTOM_ID] = { - inputType: inputs.Text, - inputOptions: { placeholder: `Custom ID` }, - label: `Custom ID`, - desc: `A name used in place of the imported character to 'merge' layers when doing group editing.` - }; - - this.infos[this.LYR_INDEX] = { - label: `Index`, - desc: `Component index` - }; - - this.infos[this.LYR_USE_PREV_LAYER] = { - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `Inherit prev. comp`, - desc: `If enabled, This component use the first visible component before it as bound reference.` - }; - - this.infos[this.LYR_IS_CONTROL_LAYER] = { - inputType: inputs.Boolean, - inputOptions: { size: ui.FLAGS.SIZE_XS }, - label: `Control layer`, - desc: `There can only be one control layer active at a time.\nIf enabled, the parent glyph will replicate the layer reference glyph settings before transformation.\nThis is only useful when working with glyphs that are empty except for layers.` - }; - - this.infos[this.TR_LYR_BOUNDS_MODE] = { - transform: true, - enum: ENUMS.BOUNDS, - inputType: inputs.InlineSelect, - label: `Glyph bounds`, - inputOptions: { catalog: ENUMS.LYR_BOUNDS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `The reference bounds used to compute transformations.` - }; - - this.infos[this.TR_LYR_SCALE_MODE] = { - transform: true, - enum: ENUMS.LYR_SCALE, - inputType: inputs.InlineSelect, - label: `Scale mode`, - inputOptions: { catalog: ENUMS.LYR_SCALE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, - desc: `Scale` - }; - this.infos[this.TR_LYR_SCALE_FACTOR] = { - transform: true, - inputType: inputs.NumberDrag, - label: `Scale factor`, - inputOptions: { min: 0.01, max: 100, step: 0.01, size: ui.FLAGS.SIZE_XS }, - desc: `Factor by which the component will be scaled.` - }; - - this.infos[this.TR_LYR_SELF_ANCHOR] = { - transform: true, - inputType: inputs.Anchor, - label: `Self anchor`, - //inputOptions: { changeOnInput: true, min: 0.01, max: 2, step: 0.01, size: ui.FLAGS.SIZE_XS }, - desc: `The component' anchor point reference for transformations.` - }; - - - - this.infos[this.CIRCULAR_REFERENCE] = { - label: `Circular reference`, - desc: `The current value creates a circular reference :(` - }; - + nkm.data.RegisterDescriptors({ + + [this.LYR_CHARACTER_NAME]: { + inputType: inputs.Text, + inputOptions: { placeholder: `A, U+0041, ...`, nullPlaceholder: `Mixed...` }, + label: `Import glyph`, + desc: `Single character, ligature, or U+0000 formatted name` + }, + + [this.LYR_CUSTOM_ID]: { + inputType: inputs.Text, + inputOptions: { placeholder: `Custom ID` }, + label: `Custom ID`, + desc: `A name used in place of the imported character to 'merge' layers when doing group editing.` + }, + + [this.LYR_INDEX]: { + label: `Index`, + desc: `Component index` + }, + + [this.LYR_USE_PREV_LAYER]: { + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + label: `Inherit prev. comp`, + desc: `If enabled, This component use the first visible component before it as bound reference.` + }, + + [this.LYR_IS_CONTROL_LAYER]: { + valueType:nkm.data.TYPES.BOOLEAN, + inputOptions: { size: ui.FLAGS.SIZE_XS }, + label: `Control layer`, + desc: `There can only be one control layer active at a time.\nIf enabled, the parent glyph will replicate the layer reference glyph settings before transformation.\nThis is only useful when working with glyphs that are empty except for layers.` + }, + + [this.TR_LYR_BOUNDS_MODE]: { + transform: true, + enum: ENUMS.BOUNDS, + inputType: inputs.SelectInline, + label: `Glyph bounds`, + inputOptions: { catalog: ENUMS.LYR_BOUNDS, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `The reference bounds used to compute transformations.` + }, + + [this.TR_LYR_SCALE_MODE]: { + transform: true, + enum: ENUMS.LYR_SCALE, + inputType: inputs.SelectInline, + label: `Scale mode`, + inputOptions: { catalog: ENUMS.LYR_SCALE, itemKey: nkm.com.IDS.VALUE, size: ui.FLAGS.SIZE_M }, + desc: `Scale` + }, + + [this.TR_LYR_SCALE_FACTOR]: { + transform: true, + inputType: inputs.NumberDrag, + label: `Scale factor`, + inputOptions: { min: 0.01, max: 100, step: 0.01, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `Factor by which the component will be scaled.` + }, + + [this.TR_LYR_SELF_ANCHOR]: { + transform: true, + inputType: inputs.Anchor, + label: `Self anchor`, + //inputOptions: { changeOnInput: true, min: 0.01, max: 2, step: 0.01, /* size: ui.FLAGS.SIZE_XS */ }, + desc: `The component' anchor point reference for transformations.` + }, + + [this.CIRCULAR_REFERENCE]: { + label: `Circular reference`, + desc: `The current value creates a circular reference :(` + }, + + }); } static GLYPH_RESAMPLE_IDS = [ diff --git a/app/js/data/index.js b/app/js/data/index.js index 2129642..99c89f0 100644 --- a/app/js/data/index.js +++ b/app/js/data/index.js @@ -2,7 +2,7 @@ module.exports = { - serialization: require(`./serialization`), + s11n: require(`./s11n`), ENUMS: require(`./enums`), IDS: require(`./ids`), @@ -11,6 +11,8 @@ module.exports = { INFOS: require(`./infos`), UTILS: require(`./utils`), + AppSettings: require(`./app-settings`), + Family: require(`./family-data-block`), GlyphLayer: require(`./glyph-layer-data-block`), @@ -21,7 +23,6 @@ module.exports = { ImportSettings: require(`./settings-import-data-block`), LigaImportSettings: require(`./settings-liga-import-data-block`), SearchSettings : require(`./settings-search-data-block`), - Prefs: require(`./settings-preferences`), RangeContent : require(`./range-content`), diff --git a/app/js/data/infos.js b/app/js/data/infos.js index ef3b2c3..aedc4a5 100644 --- a/app/js/data/infos.js +++ b/app/js/data/infos.js @@ -7,14 +7,10 @@ const IDS_PREFS = require(`./ids-prefs`); class INFOS { constructor() { } - static Get(p_id) { - return IDS.GetInfos(p_id) || IDS_EXT.GetInfos(p_id) || IDS_PREFS.GetInfos(p_id) || null; - } - static LAYER_LIMIT = 50; static get MARK_COLOR() { - let col = nkm.env.APP.PGet(IDS_PREFS.MARK_COLOR, `FF00FF`); + let col = nkm.settings.Get(IDS_PREFS.MARK_COLOR, `FF00FF`); if (col.substr(0, 1) == `#`) { col = col.substr(1); } return col.toLowerCase(); } diff --git a/app/js/data/range-content.js b/app/js/data/range-content.js index 7f0068a..3f81189 100644 --- a/app/js/data/range-content.js +++ b/app/js/data/range-content.js @@ -12,13 +12,13 @@ const IDS = require(`./ids`); const IDS_EXT = require(`./ids-ext`); const UTILS = require(`./utils`); -class RangeContent extends nkm.com.pool.DisposableObjectEx { +class RangeContent extends nkm.com.Observable { constructor() { super(); } //#region Static utils static CountGlyphs = (p_family) => { - return p_family._glyphs.count; + return p_family._glyphs.length; }; static CountLiga = (p_family) => { @@ -30,7 +30,7 @@ class RangeContent extends nkm.com.pool.DisposableObjectEx { } static CountAll = (p_family) => { - return UNICODE.instance._charList.length; + return UNICODE._charList.length; } static FetchFamilyGlyphAll(p_family) { @@ -42,7 +42,7 @@ class RangeContent extends nkm.com.pool.DisposableObjectEx { static FetchFamilyGlyphLiga(p_family) { let result = []; - p_family._glyphs.ForEach( + p_family._glyphs.forEach( (item, index) => { if (p_family._ligatureSet.has(item)) { result.push(item.Get(IDS.UNICODE)); } }); @@ -57,7 +57,7 @@ class RangeContent extends nkm.com.pool.DisposableObjectEx { } static FetchAllKnowGlyphs(p_family) { - return UNICODE.instance._charList; + return UNICODE._charList; } //#endregion @@ -196,7 +196,7 @@ class RangeContent extends nkm.com.pool.DisposableObjectEx { index = this._GetMixedIndex(i); if (index == -1) { continue; } - unicodeInfos = UNICODE.instance._charList[index]; + unicodeInfos = UNICODE._charList[index]; if (!unicodeInfos) { continue; } this._content.push(unicodeInfos); diff --git a/app/js/data/serialization/index.js b/app/js/data/s11n/index.js similarity index 100% rename from app/js/data/serialization/index.js rename to app/js/data/s11n/index.js diff --git a/app/js/data/serialization/json/index.js b/app/js/data/s11n/json/index.js similarity index 61% rename from app/js/data/serialization/json/index.js rename to app/js/data/s11n/json/index.js index 3de27cf..c3825d8 100644 --- a/app/js/data/serialization/json/index.js +++ b/app/js/data/s11n/json/index.js @@ -3,6 +3,6 @@ module.exports = { Family: require(`./json-family-data-block`), - SimpleDataEx: require(`./json-simple-data-ex`), + FontObjectData: require(`./json-simple-data-ex`), } \ No newline at end of file diff --git a/app/js/data/serialization/json/json-family-data-block.js b/app/js/data/s11n/json/json-family-data-block.js similarity index 93% rename from app/js/data/serialization/json/json-family-data-block.js rename to app/js/data/s11n/json/json-family-data-block.js index 0f97d1d..bc15f1d 100644 --- a/app/js/data/serialization/json/json-family-data-block.js +++ b/app/js/data/s11n/json/json-family-data-block.js @@ -35,10 +35,10 @@ const __ID_lyrs = `layers`; * @description TODO * @class * @hideconstructor - * @augments data.core.serialization.json.DataBlock - * @memberof data.core.serialization + * @augments data.core.s11n.json.DataBlock + * @memberof data.core.s11n */ -class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBlock { +class FamilyDataBlockJSONSerializer extends nkm.data.s11n.json.DataBlock { constructor() { super(); } /** @@ -62,10 +62,10 @@ class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBloc fontObj[__ID_glyphs] = glyphs; // First, go through all glyphs - for (let i = 0; i < p_data._glyphs.count; i++) { + for (let i = 0; i < p_data._glyphs.length; i++) { let - glyph = p_data._glyphs.At(i), + glyph = p_data._glyphs[i], variants = [], glyphObj = { [__ID_values]: glyph.Values(), @@ -90,7 +90,7 @@ class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBloc if (!variant._layers.isEmpty) { let layers = []; variantObj[__ID_lyrs] = layers; - variant._layers.ForEach(lyr => { + variant._layers.forEach(lyr => { let lv = lyr.Values(); if (variant.controlLayer == lyr) { lv[IDS.LYR_IS_CONTROL_LAYER] = true; } else { delete lv[IDS.LYR_IS_CONTROL_LAYER]; } @@ -115,7 +115,7 @@ class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBloc } - p_serial[nkm.data.serialization.CONTEXT.JSON.DATA_KEY] = fontObj; + p_serial[nkm.data.s11n.CTX.JSON.DATA_KEY] = fontObj; } diff --git a/app/js/data/serialization/json/json-simple-data-ex.js b/app/js/data/s11n/json/json-simple-data-ex.js similarity index 74% rename from app/js/data/serialization/json/json-simple-data-ex.js rename to app/js/data/s11n/json/json-simple-data-ex.js index b84a986..fe35ceb 100644 --- a/app/js/data/serialization/json/json-simple-data-ex.js +++ b/app/js/data/s11n/json/json-simple-data-ex.js @@ -4,10 +4,10 @@ const nkm = require(`@nkmjs/core`) * @description TODO * @class * @hideconstructor - * @augments data.core.serialization.json.DataBlock - * @memberof data.core.serialization + * @augments data.core.s11n.json.DataBlock + * @memberof data.core.s11n */ -class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBlock { +class FamilyDataBlockJSONSerializer extends nkm.data.s11n.json.DataBlock { constructor() { super(); } @@ -20,7 +20,7 @@ class FamilyDataBlockJSONSerializer extends nkm.data.serialization.json.DataBloc * @returns */ static SerializeContent(p_serial, p_data, p_options = null) { - p_serial[nkm.data.serialization.CONTEXT.JSON.DATA_KEY] = p_data.Values(); + p_serial[nkm.data.s11n.CTX.JSON.DATA_KEY] = p_data.Values(); } /** diff --git a/app/js/data/settings-global-transforms-data-block.js b/app/js/data/settings-global-transforms-data-block.js index 875e937..7991d67 100644 --- a/app/js/data/settings-global-transforms-data-block.js +++ b/app/js/data/settings-global-transforms-data-block.js @@ -8,16 +8,15 @@ const io = nkm.io; const TransformSettingsDataBlock = require(`./settings-transforms-data-block`); const IDS = require(`./ids`); -class ImportSettingsDataBlock extends TransformSettingsDataBlock { - +const base = TransformSettingsDataBlock; +class ImportSettingsDataBlock extends base { constructor() { super(); } - _ResetValues(p_values) { - super._ResetValues(p_values); - p_values[IDS.MONOSPACE] = { value: false }; - } - + static __VALUES = { + ...base.__VALUES, + [IDS.MONOSPACE]: { value: false } + }; } -module.exports = ImportSettingsDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(ImportSettingsDataBlock); \ No newline at end of file diff --git a/app/js/data/settings-import-data-block.js b/app/js/data/settings-import-data-block.js index 4a324e6..38ef86b 100644 --- a/app/js/data/settings-import-data-block.js +++ b/app/js/data/settings-import-data-block.js @@ -1,43 +1,37 @@ 'use strict'; -const nkm = require(`@nkmjs/core`); -const dom = nkm.ui.dom; -const u = nkm.u; -const io = nkm.io; - const TransformSettingsDataBlock = require(`./settings-transforms-data-block`); const IDS_EXT = require(`./ids-ext`); const ENUMS = require(`./enums`); const UNICODE = require("../unicode"); +const base = TransformSettingsDataBlock; class ImportSettingsDataBlock extends TransformSettingsDataBlock { - constructor() { super(); } - _ResetValues(p_values) { + static __VALUES = { - super._ResetValues(p_values); + ...base.__VALUES, + + [IDS_EXT.IMPORT_ASSIGN_MODE]: { value: ENUMS.ASSIGN_FILENAME }, + [IDS_EXT.IMPORT_OVERLAP_MODE]: { value: ENUMS.OVERLAP_PRESERVE }, - p_values[IDS_EXT.IMPORT_ASSIGN_MODE] = { value: ENUMS.ASSIGN_FILENAME }; - p_values[IDS_EXT.IMPORT_OVERLAP_MODE] = { value: ENUMS.OVERLAP_PRESERVE }; - //Filename - p_values[IDS_EXT.IMPORT_PREFIX] = { value: `char` }; - p_values[IDS_EXT.IMPORT_SEPARATOR] = { value: `_` }; - p_values[IDS_EXT.IMPORT_MARK_X] = { value: `-x` }; - p_values[IDS_EXT.IMPORT_MARK_CAP] = { value: `-c` }; - p_values[IDS_EXT.IMPORT_MARK_COL] = { value: `#ff00ff` }; + [IDS_EXT.IMPORT_PREFIX]: { value: `char` }, + [IDS_EXT.IMPORT_SEPARATOR]: { value: `_` }, + [IDS_EXT.IMPORT_MARK_X]: { value: `-x` }, + [IDS_EXT.IMPORT_MARK_CAP]: { value: `-c` }, + [IDS_EXT.IMPORT_MARK_COL]: { value: `#ff00ff` }, //Block - p_values[IDS_EXT.IMPORT_BLOCK] = { value: UNICODE.instance._blockCatalog.At(0) }; - p_values[IDS_EXT.IMPORT_BLOCK_START] = { value: ENUMS.BLOCK_START_BEGIN }; - - p_values[IDS_EXT.IMPORT_BIND_RESOURCE] = { value: true }; - p_values[IDS_EXT.IMPORT_TEXT_AS_LAYERS] = { value: true }; + [IDS_EXT.IMPORT_BLOCK]: { value: UNICODE._blockCatalog.At(0) }, + [IDS_EXT.IMPORT_BLOCK_START]: { value: ENUMS.BLOCK_START_BEGIN }, - } + [IDS_EXT.IMPORT_BIND_RESOURCE]: { value: true }, + [IDS_EXT.IMPORT_TEXT_AS_LAYERS]: { value: true }, + }; } -module.exports = ImportSettingsDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(ImportSettingsDataBlock); \ No newline at end of file diff --git a/app/js/data/settings-liga-import-data-block.js b/app/js/data/settings-liga-import-data-block.js index 1fe70b2..53fe38e 100644 --- a/app/js/data/settings-liga-import-data-block.js +++ b/app/js/data/settings-liga-import-data-block.js @@ -1,27 +1,19 @@ 'use strict'; -const nkm = require(`@nkmjs/core`); -const dom = nkm.ui.dom; -const u = nkm.u; -const io = nkm.io; - -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const IDS_EXT = require(`./ids-ext`); -class LigaImportSettingsDataBlock extends SimpleDataEx { - +class LigaImportSettingsDataBlock extends FontObjectData { constructor() { super(); } - _ResetValues(p_values) { - - p_values[IDS_EXT.LIGA_TEXT] = { value: `` }; - p_values[IDS_EXT.LIGA_MIN] = { value: 2 }; - p_values[IDS_EXT.LIGA_MAX] = { value: 3 }; - p_values[IDS_EXT.LIGA_MIN_OCCURENCE] = { value: 2 }; - p_values[IDS_EXT.LIGA_EACH_LINE] = { value: false }; - - } + static __VALUES = { + [IDS_EXT.LIGA_TEXT]: { value: `` }, + [IDS_EXT.LIGA_MIN]: { value: 2 }, + [IDS_EXT.LIGA_MAX]: { value: 3 }, + [IDS_EXT.LIGA_MIN_OCCURENCE]: { value: 2 }, + [IDS_EXT.LIGA_EACH_LINE]: { value: false }, + }; } -module.exports = LigaImportSettingsDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(LigaImportSettingsDataBlock); \ No newline at end of file diff --git a/app/js/data/settings-preferences.js b/app/js/data/settings-preferences.js deleted file mode 100644 index 3020e2a..0000000 --- a/app/js/data/settings-preferences.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -const nkm = require(`@nkmjs/core`); -const dom = nkm.ui.dom; -const u = nkm.u; -const io = nkm.io; - -const SimpleDataEx = require(`./simple-data-ex`); -const IDS = require(`./ids`); -const IDS_EXT = require(`./ids-ext`); -const IDS_PREFS = require(`./ids-prefs`); -const ENUMS = require(`./enums`); - -class PreferencesSettingsDataBlock extends SimpleDataEx { - constructor() { super(); } - - static __signalValueMap = { - [IDS_PREFS.AUTOSAVE]: IDS_PREFS.AUTOSAVE, - [IDS_PREFS.AUTOSAVE_TIMER]: IDS_PREFS.AUTOSAVE_TIMER, - }; - - static __NFO__ = { - [nkm.com.IDS.UID]: `@mkf:prefs-data-block`, - [nkm.com.IDS.ICON]: `gear` - }; - - _Init() { - - super._Init(); - - } - - _ResetValues(p_values) { - - p_values[IDS_PREFS.MARK_COLOR] = { value: `#FF00FF` }; - - p_values[IDS_PREFS.SVG_EDITOR_PATH] = { value: `` }; - p_values[IDS_PREFS.ILLU_PATH] = { value: `` }; - - p_values[IDS_PREFS.AUTOSAVE] = { value: false }; - p_values[IDS_PREFS.AUTOSAVE_TIMER] = { value: 10 }; - p_values[IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD] = { value: 5000 }; - - p_values[IDS_EXT.IMPORT_BIND_RESOURCE] = { value: true }; - - p_values[IDS.FAMILY] = { value: `New MKFont` }; - p_values[IDS.COPYRIGHT] = { value: `(c) mkfont 2022` }; - p_values[IDS.DESCRIPTION] = { value: `Made with mkfont` }; - p_values[IDS.URL] = { value: `https://github.com/Nebukam/mkfont` }; - p_values[IDS.COLOR_PREVIEW] = { value: `#f5f5f5` }; - p_values[IDS.PREVIEW_SIZE] = { value: 70 }; - - } - - - -} - -module.exports = PreferencesSettingsDataBlock; \ No newline at end of file diff --git a/app/js/data/settings-search-data-block.js b/app/js/data/settings-search-data-block.js index 777ad52..0d79cec 100644 --- a/app/js/data/settings-search-data-block.js +++ b/app/js/data/settings-search-data-block.js @@ -7,17 +7,26 @@ const io = nkm.io; const UNICODE = require(`../unicode`); const SIGNAL = require(`../signal`); -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const IDS_EXT = require(`./ids-ext`); const IDS = require(`./ids`); const ENUMS = require(`./enums`); -class SettingsSearchDataBlock extends SimpleDataEx { +const base = nkm.data.SimpleDataBlock; +class SettingsSearchDataBlock extends base { constructor() { super(); } - static __signalValueMap = { - [IDS_EXT.SEARCH_ENABLED]: SIGNAL.SEARCH_TOGGLED + static __VALUES = { + + ...base.__VALUES, + + [nkm.data.IDS.SEARCH_ENABLED]: { value: false, signal: nkm.data.SIGNAL.SEARCH_TOGGLED }, + [nkm.data.IDS.SEARCH_RESULTS]: { value: null }, + [nkm.data.IDS.SEARCH_TERMS]: { value: `` }, + [nkm.data.IDS.SEARCH_CASE_SENSITIVE]: { value: false }, + [IDS_EXT.ADD_COMPOSITION]: { value: false }, + [IDS_EXT.MUST_EXISTS]: { value: false }, }; _Init() { @@ -45,37 +54,26 @@ class SettingsSearchDataBlock extends SimpleDataEx { } - _ResetValues(p_values) { - - p_values[IDS_EXT.SEARCH_RESULTS] = { value: null }; - p_values[IDS_EXT.SEARCH_ENABLED] = { value: false }; - p_values[IDS_EXT.SEARCH_TERM] = { value: `` }; - p_values[IDS_EXT.CASE_INSENSITIVE] = { value: false }; - p_values[IDS_EXT.ADD_COMPOSITION] = { value: false }; - p_values[IDS_EXT.MUST_EXISTS] = { value: false }; - - } - set family(p_value) { this._family = p_value; } get family() { return this._family; } get ready() { return this._ready; } get running() { return this._running; } - get enabled() { return this.Get(IDS_EXT.SEARCH_ENABLED); } + get enabled() { return this.Get(nkm.data.IDS.SEARCH_ENABLED); } - CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent = false) { + CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent = false) { - super.CommitValueUpdate(p_id, p_valueObj, p_oldValue, p_silent); + super.CommitValueUpdate(p_id, p_newValue, p_oldValue, p_silent); if (!this.enabled) { return; } - let infos = IDS_EXT.GetInfos(p_id); + let descriptor = nkm.data.GetDescriptor(p_id); - if (!infos || + if (!descriptor || !this._rangeContent) return; - if (!infos.recompute) + if (!descriptor.recompute) return; this._UpdateSearchData(this._rangeContent); @@ -91,11 +89,11 @@ class SettingsSearchDataBlock extends SimpleDataEx { this._ready = false; this._searchCovered = 0; - this._caseSensitive = !this.Get(IDS_EXT.CASE_INSENSITIVE); + this._caseSensitive = !this.Get(nkm.data.IDS.SEARCH_CASE_SENSITIVE); this._addComps = this.Get(IDS_EXT.ADD_COMPOSITION); this._mustExists = this.Get(IDS_EXT.MUST_EXISTS); - this._terms = UNICODE.ResolveString(this.Get(IDS_EXT.SEARCH_TERM)).split(` `); + this._terms = UNICODE.ResolveString(this.Get(nkm.data.IDS.SEARCH_TERMS)).split(` `); this._upperTerms = []; this._upperIndexed = []; for (let i = 0; i < this._terms.length; i++) { @@ -113,7 +111,7 @@ class SettingsSearchDataBlock extends SimpleDataEx { this._AdvanceSearch(); - this.Broadcast(SIGNAL.SEARCH_STARTED, this); + this.Broadcast(nkm.data.SIGNAL.SEARCH_STARTED, this); } @@ -130,10 +128,10 @@ class SettingsSearchDataBlock extends SimpleDataEx { this._running = false; this._ready = true; - this._values[IDS_EXT.SEARCH_RESULTS].value = null; - this.Set(IDS_EXT.SEARCH_RESULTS, this._results); + this._values[nkm.data.IDS.SEARCH_RESULTS] = null; + this.Set(nkm.data.IDS.SEARCH_RESULTS, this._results); - this.Broadcast(SIGNAL.SEARCH_COMPLETE, this); + this.Broadcast(nkm.data.SIGNAL.SEARCH_COMPLETE, this); } else { @@ -143,7 +141,7 @@ class SettingsSearchDataBlock extends SimpleDataEx { this._searchCovered += length; - this.Broadcast(SIGNAL.SEARCH_PROGRESS, this._searchCovered / this._content.length); + this.Broadcast(nkm.data.SIGNAL.SEARCH_PROGRESS, this._searchCovered / this._content.length); this._delayedAdvance.Schedule(); @@ -201,7 +199,7 @@ class SettingsSearchDataBlock extends SimpleDataEx { //Look through layers and check if they have custom IDs that would match let glyph = this._family.GetGlyph(p_unicodeInfos.u); if (!glyph.isNull) { - let layers = glyph.activeVariant._layers._array; + let layers = glyph.activeVariant._layers; for (let l = 0, ln = layers.length; l < ln; l++) { let layer = layers[l], @@ -226,7 +224,7 @@ class SettingsSearchDataBlock extends SimpleDataEx { } - if(localPass){ + if (localPass) { let infos = layer._glyphInfos; if (this._mustExists) { if (!(infos.u in this._family._glyphsMap)) { continue; } } this._results.push(infos); @@ -247,7 +245,7 @@ class SettingsSearchDataBlock extends SimpleDataEx { if (this._addComps && p_unicodeInfos.relatives) { let relatives = p_unicodeInfos.relatives; for (let i = 0; i < relatives.length; i++) { - let infos = UNICODE.instance._charMap[relatives[i]]; + let infos = UNICODE._charMap[relatives[i]]; if (this._mustExists) { if (!(infos.u in this._family._glyphsMap)) { continue; } } this._results.push(infos); this._resultSet.add(infos); @@ -263,4 +261,4 @@ class SettingsSearchDataBlock extends SimpleDataEx { } -module.exports = SettingsSearchDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(SettingsSearchDataBlock); \ No newline at end of file diff --git a/app/js/data/settings-transforms-data-block.js b/app/js/data/settings-transforms-data-block.js index 033b798..dbd1177 100644 --- a/app/js/data/settings-transforms-data-block.js +++ b/app/js/data/settings-transforms-data-block.js @@ -1,47 +1,39 @@ 'use strict'; -const nkm = require(`@nkmjs/core`); -const dom = nkm.ui.dom; -const u = nkm.u; -const io = nkm.io; - const svgpr = require('svg-path-reverse'); -const SimpleDataEx = require(`./simple-data-ex`); +const FontObjectData = require(`./font-object-data`); const IDS = require(`./ids`); const ENUMS = require(`./enums`); -class TransformSettingsDataBlock extends SimpleDataEx { - +class TransformSettingsDataBlock extends FontObjectData { constructor() { super(); } - _Init() { + static __VALUES = { + + [IDS.TR_BOUNDS_MODE]: { value: ENUMS.BOUNDS_MIXED_VER }, + [IDS.TR_SCALE_MODE]: { value: ENUMS.SCALE_ASCENDER }, + [IDS.TR_SCALE_FACTOR]: { value: 1 }, + [IDS.TR_NRM_FACTOR]: { value: 0 }, + [IDS.TR_VER_ALIGN]: { value: ENUMS.VALIGN_BASELINE }, + [IDS.TR_HOR_ALIGN]: { value: ENUMS.HALIGN_XMIN }, + [IDS.TR_ANCHOR]: { value: ENUMS.ANCHOR_BOTTOM_LEFT }, + [IDS.TR_WIDTH_SHIFT]: { value: 0, nullable: true, propagate: true }, + [IDS.TR_WIDTH_PUSH]: { value: 0, nullable: true, propagate: true }, + [IDS.TR_AUTO_WIDTH]: { value: true }, + [IDS.TR_Y_OFFSET]: { value: 0, nullable: true, propagate: true }, + [IDS.TR_MIRROR]: { value: ENUMS.MIRROR_NONE }, + [IDS.TR_SKEW_ROT_ORDER]: { value: ENUMS.SKR_ORDER_R_X_Y, nullable: true, propagate: true }, + [IDS.TR_ROTATION]: { value: 0, nullable: true, propagate: true }, + [IDS.TR_ROTATION_ANCHOR]: { value: ENUMS.ANCHOR_CENTER, nullable: true, propagate: true }, + [IDS.TR_SKEW_X]: { value: 0, nullable: true, propagate: true }, + [IDS.TR_SKEW_Y]: { value: 0, nullable: true, propagate: true }, + + }; + _Init() { super._Init(); this._variant = null; - - } - - _ResetValues(p_values) { - - p_values[IDS.TR_BOUNDS_MODE] = { value: ENUMS.BOUNDS_MIXED_VER }; - p_values[IDS.TR_SCALE_MODE] = { value: ENUMS.SCALE_ASCENDER }; - p_values[IDS.TR_SCALE_FACTOR] = { value: 1 }; - p_values[IDS.TR_NRM_FACTOR] = { value: 0 }; - p_values[IDS.TR_VER_ALIGN] = { value: ENUMS.VALIGN_BASELINE }; - p_values[IDS.TR_HOR_ALIGN] = { value: ENUMS.HALIGN_XMIN }; - p_values[IDS.TR_ANCHOR] = { value: ENUMS.ANCHOR_BOTTOM_LEFT }; - p_values[IDS.TR_WIDTH_SHIFT] = { value: 0, nullable: true, propagate: true }; - p_values[IDS.TR_WIDTH_PUSH] = { value: 0, nullable: true, propagate: true }; - p_values[IDS.TR_AUTO_WIDTH] = { value: true }; - p_values[IDS.TR_Y_OFFSET] = { value: 0, nullable: true, propagate: true }; - p_values[IDS.TR_MIRROR] = { value: ENUMS.MIRROR_NONE }; - p_values[IDS.TR_SKEW_ROT_ORDER] = { value: ENUMS.SKR_ORDER_R_X_Y, nullable: true, propagate: true }; - p_values[IDS.TR_ROTATION] = { value: 0, nullable: true, propagate: true }; - p_values[IDS.TR_ROTATION_ANCHOR] = { value: ENUMS.ANCHOR_CENTER, nullable: true, propagate: true }; - p_values[IDS.TR_SKEW_X] = { value: 0, nullable: true, propagate: true }; - p_values[IDS.TR_SKEW_Y] = { value: 0, nullable: true, propagate: true }; - } set variant(p_value) { this._variant = p_value; } @@ -101,7 +93,6 @@ class TransformSettingsDataBlock extends SimpleDataEx { w = rw; } } - } this._variant._computedPath = path; @@ -116,9 +107,12 @@ class TransformSettingsDataBlock extends SimpleDataEx { prevLayer = null, lastLayerPath = null; - this._variant.layers.ForEach((layer, index) => { + for (const layer of this._variant.layers) { + let ref = layer.importedVariant; - if (ref && !layer._isCircular && layer.Get(IDS.DO_EXPORT)) { + if (ref && ref._computedPath && refPath // Make sure path data has been computed and is available + && !layer._isCircular + && layer.Get(IDS.DO_EXPORT)) { let layerCP, @@ -132,7 +126,7 @@ class TransformSettingsDataBlock extends SimpleDataEx { layerCP = SVGOPS.FitLayerPath(layer, refPath, ref, layerPath); } - layer._values[IDS.PATH].value = layerCP; + layer._values[IDS.PATH] = layerCP; layer._CleanLayer(); let bb = layerCP.bbox; @@ -143,11 +137,11 @@ class TransformSettingsDataBlock extends SimpleDataEx { } else { //prevLayerData = null; //So 'prev layer' is actually "closest valid layer" - layer._values[IDS.PATH].value = null; + layer._values[IDS.PATH] = null; } prevLayer = layer; - }); + } } let pathConcat = this._variant._ConcatPaths(path.path); @@ -173,4 +167,4 @@ class TransformSettingsDataBlock extends SimpleDataEx { } -module.exports = TransformSettingsDataBlock; \ No newline at end of file +module.exports = nkm.data.Register(TransformSettingsDataBlock); \ No newline at end of file diff --git a/app/js/data/ttf-import.js b/app/js/data/ttf-import.js index 97d7ac6..e8eba24 100644 --- a/app/js/data/ttf-import.js +++ b/app/js/data/ttf-import.js @@ -1,7 +1,7 @@ 'use strict'; const nkm = require(`@nkmjs/core`); -const css = nkm.style.CSS; + const Family = require(`./family-data-block`); const Glyph = require(`./glyph-data-block`); const IDS = require(`./ids`); diff --git a/app/js/data/utils.js b/app/js/data/utils.js index 688190a..907f199 100644 --- a/app/js/data/utils.js +++ b/app/js/data/utils.js @@ -14,25 +14,6 @@ class UTILS { static __layerClass = null; - static Resolve(p_id, p_self, ...p_fallbacks) { - - if (!p_self) { return null; } - - //console.log(`Resolve ${p_id} in ${p_self} -> ${p_fallbacks}`); - let valueObj = p_self._values[p_id]; - let result = valueObj ? valueObj.value : null; - - if (result != null) { return result; } - - if (p_fallbacks.length > 0) { - p_self = p_fallbacks.shift(); - return this.Resolve(p_id, p_self, ...p_fallbacks); - } - - return null; - - } - static FindCommonValues(p_reference, p_dataList, p_dataMember = null, backupList = null) { let @@ -44,9 +25,9 @@ class UTILS { searchState = 0, backup = {}; - if (backupList) { backupList.forEach(id => { backup[id] = refValues[id].value; }) } + if (backupList) { backupList.forEach(id => { backup[id] = refValues[id]; }) } - for (var v in refValues) { refValues[v].value = null; } + for (var v in refValues) { refValues[v] = null; } compareloop: for (let i = 0; i < dataCount; i++) { @@ -84,14 +65,14 @@ class UTILS { if (backupList) { backupList.forEach(id => { - refValues[id].value = backup[id]; + refValues[id] = backup[id]; delete commonValues[id]; }) } if (searchState == 2) { if (ignoreCount == valCount) { return false; } - for (var v in commonValues) { refValues[v].value = commonValues[v]; } + for (var v in commonValues) { refValues[v] = commonValues[v]; } return true; } @@ -135,8 +116,8 @@ class UTILS { if (p_scale == 1) { return; } p_ids.forEach(id => { let obj = p_values[id]; - if (!obj || obj.value == null) { return; } - obj.value *= p_scale; + if (!obj || obj == null) { return; } + obj *= p_scale; }); } diff --git a/app/js/editors/editor-font-footer.js b/app/js/editors/editor-font-footer.js index 35c36a1..d04bfc8 100644 --- a/app/js/editors/editor-font-footer.js +++ b/app/js/editors/editor-font-footer.js @@ -15,11 +15,11 @@ class FontEditorFooter extends base { _Init() { super._Init(); - ContentManager.instance + ContentManager .Watch(nkm.com.SIGNAL.UPDATED, this._OnContentUpdate, this) .Watch(nkm.com.SIGNAL.READY, this._OnContentUpdateComplete, this); - nkm.env.APP.Watch(nkm.env.APP.SIGNAL_MEM_MONITOR, (p_data)=>{ + nkm.main.Watch(nkm.main.SIGNAL_MEM_MONITOR, (p_data)=>{ let pc = (p_data.private / 4000000); this._memBar.progress = pc; this._memBar.setAttribute(`title`, `Ram usage : ${(pc * 100).toFixed(2)}% (${p_data.private/1000}Mo / 4000Mo)`); @@ -30,17 +30,16 @@ class FontEditorFooter extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', + ...nkm.style.flex.row, 'min-height': '8px', 'height': '8px', - 'position':'relative' }, '.progress': { - 'position':'absolute', + ...nkm.style.rules.pos.abs, 'width': '100%', }, '.membar': { - '@': ['absolute-right'], + ...nkm.style.rules.absolute.right, 'width': `100px`, 'height': `4px`, 'min-height': `4px`, @@ -59,7 +58,7 @@ class FontEditorFooter extends base { //this._progressLabel = new ui.manipulators.Text(ui.El(`div`, { class: `label` }, this._host)); this._memBar = this.Attach(nkm.uilib.bars.ProgressBar, `membar`); this._memBar.style.setProperty(`--flavor-color`, `rgb(127,127,127)`); - this._memBar.style.setProperty(`--flavor-color-dark-rgb`, `127,127,127`); + this._memBar.style.setProperty(`--flavor-color-low-rgb`, `127,127,127`); this._memBar.setAttribute(`title`, `Ram usage : ---% (---mb/4000mb)`); } diff --git a/app/js/editors/editor-font-header.js b/app/js/editors/editor-font-header.js index 2f28d42..83d47fd 100644 --- a/app/js/editors/editor-font-header.js +++ b/app/js/editors/editor-font-header.js @@ -45,17 +45,15 @@ class FontEditorHeader extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'row nowrap', - 'align-items': 'center', - 'justify-content': 'space-between', + ...nkm.style.flex.row, + ...nkm.style.flex.align.center.cross, + + 'justify-content':'space-between', 'min-height': 'auto', 'padding': '10px', 'box-shadow': `0px -2px 5px black`, 'border-bottom': `1px solid #242424`, - 'background-color': 'rgba(127,127,127,0.1)', }, '.title': { 'opacity': '0.2', @@ -65,7 +63,7 @@ class FontEditorHeader extends base { }, '.monitor': { - '@': [`absolute-right`], + ...nkm.style.rules.absolute.right, 'margin-right': '10px' } }, base._Style()); diff --git a/app/js/editors/editor-font.js b/app/js/editors/editor-font.js index 9169fca..93f640e 100644 --- a/app/js/editors/editor-font.js +++ b/app/js/editors/editor-font.js @@ -75,7 +75,7 @@ class FontEditor extends base { this._bindingManager = new helpers.BindingManager(this); // Commands - this.cmdSave = this._commands.Add(mkfCmds.SaveFamilyDoc, { shortcut: this.shortcuts.Create("Ctrl S") }); + this.cmdSave = this._commands.Add(nkm.main._MKFontDocDefinition.SaveCmd, { shortcut: this.shortcuts.Create("Ctrl S") }); this.cmdExport = this._commands.Create(mkfCmds.ExportTTF, { shortcut: this.shortcuts.Create("Ctrl E") }); this.cmdEditInPlace = this._commands.Create(mkfCmds.EditInExternalEditor); @@ -110,21 +110,6 @@ class FontEditor extends base { this.cmdImportLigatures = this._commands.Create(mkfCmds.ImportLigatures); this.cmdImportMKFont = this._commands.Create(mkfCmds.ImportMKFont); - this.shortcuts.Create("Ctrl Z", this._actionStack.Undo); - this.shortcuts.Create("Ctrl Y", this._actionStack.Redo); - this.shortcuts.Create("Ctrl A", { - fn: () => { - this._viewport._selStack.data.RequestSelectAll(); - nkm.ui.dom.ClearHighlightedText(); - } - }).Strict(); - - this.shortcuts.Create("escape", () => { - this._registerEmptySelection = true; - this._inspectedData.Clear(); - this._registerEmptySelection = false; - }); - for (let i = 0; i < 10; i++) { this.shortcuts.Create(`Ctrl ${i}`, () => { this._StoreSelectionPreset(i); }); this.shortcuts.Create(`Shift ${i}`, () => { this._RestoreSelectionPreset(i, true); }); @@ -136,7 +121,7 @@ class FontEditor extends base { _StoreSelectionPreset(p_index) { if (!this._data) { return; } let preset = []; - for (let i = 0; i < this._inspectedData.stack.count; i++) { preset.push(this._inspectedData.stack.At(i).u); } + for (let i = 0; i < this._inspectedData.stack.length; i++) { preset.push(this._inspectedData.stack[i].u); } this._data._selectionPresets[p_index] = preset; } @@ -145,7 +130,7 @@ class FontEditor extends base { let preset = this._data._selectionPresets[p_index]; if (!preset || preset.length == 0) { return; } let restored; - if (p_append) { restored = [...this._inspectedData.stack._array]; } + if (p_append) { restored = [...this._inspectedData.stack]; } else { restored = []; } for (let i = 0; i < preset.length; i++) { restored.push(UNICODE.GetInfos(preset[i])); } if (restored.length == 0) { return; } @@ -225,17 +210,17 @@ class FontEditor extends base { let conf = confs[i], item = this._leftShelfCatalog.Register(conf), - view = item.GetOption('view', null), - assign = u.tils.Get(conf, `assign`, null); + view = item.GetOption('view', null); if (view) { - if (`forwardData` in conf && !conf.forwardData) { } + if ('forwardData' in conf && !conf.forwardData) { } else { this.forwardData.To(view); } this._forwardContext.To(view); + this._forwardEditor.To(view); - if (assign) { this[assign] = view; } + if (conf.assign) { this[conf.assign] = view; } } @@ -332,29 +317,30 @@ class FontEditor extends base { } _OnDataChanged(p_oldData) { + super._OnDataChanged(p_oldData); - let ar = UNICODE.instance._blockCatalog.At(0); + let ar = UNICODE._blockCatalog.At(0); if (this._data) { - + this._OnDataValueChanged(this._data, mkfData.IDS.PREVIEW_SIZE, null); - - if (this._data._glyphs.count > 0) { + + if (this._data._glyphs.length > 0) { ar = this._contentInspector._specialCatalog.At(0); //My Glyphs } this.SetActiveRange(ar); this._viewport._RefreshItems(); - + } } - _OnDataValueChanged(p_data, p_id, p_valueObj) { + _OnDataValueChanged(p_data, p_id, p_newValue, p_oldValue) { - let infos = mkfData.IDS.GetInfos(p_id); + let descriptor = nkm.data.GetDescriptor(p_id); - if (!infos) { return; } + if (!descriptor) { return; } - if (infos.recompute) { + if (descriptor.recompute) { p_data._UpdateDisplayValues(); @@ -429,9 +415,7 @@ class FontEditor extends base { } } - _ConfirmClose() { - super.RequestClose(); - } + _ConfirmClose() { super.RequestClose(); } _CleanUp() { this._bindingManager.Clear(); diff --git a/app/js/editors/editor-liga-import.js b/app/js/editors/editor-liga-import.js index 436601e..1b7619d 100644 --- a/app/js/editors/editor-liga-import.js +++ b/app/js/editors/editor-liga-import.js @@ -4,6 +4,8 @@ const nkm = require(`@nkmjs/core`); const u = nkm.u; const ui = nkm.ui; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; + const svgpath = require('svgpath'); const UNICODE = require(`../unicode`); @@ -21,7 +23,7 @@ class EditorLigaImport extends base { super._Init(); this._builder = new nkm.datacontrols.helpers.ControlBuilder(this); - this._builder.options = { cl:mkfWidgets.PropertyControl, css:`control` }; + this._builder.options = { cl:nkm.datacontrols.widgets.ValueControl, css:`control` }; this.forwardData.To(this._builder); @@ -45,31 +47,32 @@ class EditorLigaImport extends base { ':host': { 'display': 'grid', 'flex-flow': 'column wrap', - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'grid-template-columns': 'max-content max-content', 'grid-template-rows': '400px', 'grid-gap': '10px' }, '.list': { - 'position': 'relative', + ...nkm.style.flex.rows, 'width': '500px', //'padding': '10px', 'overflow': 'auto', - 'display': 'flex', - 'flex-flow': 'row wrap', 'align-content': 'flex-start' }, '.inputs': { + ...nkm.style.flex.column, + ...nkm.style.rules.gap.small, + ...nkm.style.flexItem.fill, 'width': '300px' }, '.control': { - 'margin-bottom': '5px' + //'margin-bottom': '5px' }, '.liga': { 'margin': `4px` }, '.msg': { - '@': [`absolute-center`] + ...nkm.style.rules.absolute.center, } }, base._Style()); } @@ -80,10 +83,10 @@ class EditorLigaImport extends base { this._inputs = ui.dom.El(`div`, { class: `inputs` }, this._host); this._builder.Build([ - { cl: mkfWidgets.ControlHeader, options: { label: `Text` } }, + { cl: MiniHeader, options: { label: `Text` } }, { options: { propertyId: mkfData.IDS_EXT.LIGA_TEXT, inputOnly: true }, member: `_textBox` }, { options: { propertyId: mkfData.IDS_EXT.LIGA_EACH_LINE } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Limits (first 500 results)` } }, + { cl: MiniHeader, options: { label: `Limits (first 500 results)` } }, { options: { propertyId: mkfData.IDS_EXT.LIGA_MIN }, disableWhen: { fn: isNEWLINE } }, { options: { propertyId: mkfData.IDS_EXT.LIGA_MAX }, disableWhen: { fn: isNEWLINE } }, { options: { propertyId: mkfData.IDS_EXT.LIGA_MIN_OCCURENCE }, disableWhen: { fn: isNEWLINE } }, diff --git a/app/js/editors/editor-list-import.js b/app/js/editors/editor-list-import.js index a44574c..590a737 100644 --- a/app/js/editors/editor-list-import.js +++ b/app/js/editors/editor-list-import.js @@ -38,36 +38,32 @@ class EditorListImport extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'flex-flow': 'row nowrap', - 'flex': '1 1 auto', + ...nkm.style.flex.row, + ...nkm.style.flexItem.fill, 'grid-gap': '10px' }, '.item': { - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, }, '.column': { 'overflow-x': 'hidden', 'overflow-y': 'auto', - 'flex': '1 1 auto', - 'min-height': 0, + ...nkm.style.flexItem.fill, }, '.frst': { 'width': `300px`, }, '.list': { - 'position': 'relative', 'width': '270px', 'background-color': 'rgba(0,0,0,0.2)', 'overflow': 'auto', 'min-height': '0', }, '.preview': { - 'position': 'relative', 'aspect-ratio': '1/1', 'width': '330px', 'border-radius': '3px', }, '.renderer': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'width': '100%', 'height': '100%', }, @@ -77,10 +73,8 @@ class EditorListImport extends base { 'max-width': `330px` }, '.header': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, 'width': `calc(100% - 22px)`, 'align-content': 'flex-start', 'border-radius': '4px', @@ -89,7 +83,7 @@ class EditorListImport extends base { 'margin-bottom': `10px` }, '.tagbar': { - '@': ['absolute-bottom'], + ...nkm.style.rules.absolute.bottom, 'margin-bottom': `10px` } }, base._Style()); @@ -105,7 +99,7 @@ class EditorListImport extends base { this._header = ui.El(`div`, { class: `item header` }, column); let builder = new nkm.datacontrols.helpers.ControlBuilder(this); - builder.options = { host: this._header, cl: mkfWidgets.PropertyControl, css: `control` }; + builder.options = { host: this._header, cl: nkm.datacontrols.widgets.ValueControl, css: `control` }; this.forwardData.To(builder); builder.Build([ @@ -116,13 +110,13 @@ class EditorListImport extends base { this._builder = builder; builder = new nkm.datacontrols.helpers.ControlBuilder(this); - builder.options = { host: column, cl: mkfWidgets.PropertyControl, css: `control` }; + builder.options = { host: column, cl: nkm.datacontrols.widgets.ValueControl, css: `control` }; this.forwardData.To(builder); builder.Build([ - { options: { propertyId: mkfData.IDS_EXT.IMPORT_BIND_RESOURCE, invertInputOrder:true } }, - { options: { propertyId: mkfData.IDS_EXT.IMPORT_TEXT_AS_LAYERS, invertInputOrder:true } }, - { cl: mkfWidgets.ControlHeader, options: { label: LOC.labelTr } }, + { options: { propertyId: mkfData.IDS_EXT.IMPORT_BIND_RESOURCE, invertInputOrder: true } }, + { options: { propertyId: mkfData.IDS_EXT.IMPORT_TEXT_AS_LAYERS, invertInputOrder: true } }, + { cl: nkm.datacontrols.widgets.MiniHeader, options: { label: LOC.labelTr } }, ]); this._settingsInspector = this.Attach(mkfInspectors.TransformSettings, `item settings`, column); @@ -171,7 +165,7 @@ class EditorListImport extends base { this._tagBar = this.Attach(ui.WidgetBar, `tagbar`, previewCtnr); this._tagBar.options = { defaultWidgetClass: nkm.uilib.widgets.Tag, - size: ui.FLAGS.SIZE_XS + /* size: ui.FLAGS.SIZE_XS */ }; this._preserved = this._tagBar.CreateHandle(); @@ -194,12 +188,12 @@ class EditorListImport extends base { } } - _OnDataValueChanged(p_data, p_id, p_valueObj, p_oldValue) { + _OnDataValueChanged(p_data, p_id, p_newValue, p_oldValue) { if (p_id == mkfData.IDS_EXT.IMPORT_ASSIGN_MODE) { this._RefreshAssignManager(); } - let infos = mkfData.IDS_EXT.GetInfos(p_id); + let descriptor = nkm.data.GetDescriptor(p_id); - if (!infos) { return; } + if (!descriptor) { return; } this._assignManager._UpdateList(); diff --git a/app/js/editors/editor-mkfont-import.js b/app/js/editors/editor-mkfont-import.js index f2b7db2..41b1c0a 100644 --- a/app/js/editors/editor-mkfont-import.js +++ b/app/js/editors/editor-mkfont-import.js @@ -47,16 +47,14 @@ class EditorMKFontImport extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, 'grid-gap': '10px' }, '.item': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, }, '.list': { - 'position': 'relative', 'width': '800px', 'min-height': '100px', //'padding': '10px', @@ -118,7 +116,7 @@ class EditorMKFontImport extends base { label: `Toggle selected glyphs`, trigger: { fn: () => { - this._selStack.data.stack.ForEach(item => { item.selected = true; }); + this._selStack.data.stack.forEach(item => { item.selected = true; }); this._OnImportListUpdated(); } }, diff --git a/app/js/editors/helpers/binding-manager.js b/app/js/editors/helpers/binding-manager.js index 16d79c0..4562a5e 100644 --- a/app/js/editors/helpers/binding-manager.js +++ b/app/js/editors/helpers/binding-manager.js @@ -7,7 +7,7 @@ const nkmElectron = require('@nkmjs/core/electron'); const mkfData = require(`../../data`); const mkfActions = require(`../../operations/actions`); -const base = nkm.com.pool.DisposableObjectEx; +const base = nkm.com.Observable; /** * @description TODO * @class @@ -20,7 +20,7 @@ class BindingManager extends base { this._editor = p_editor; this._map = new Map(); this._reverseMap = new Map(); - this._list = new nkm.collections.List(); + this._list = []; this._rscOptions = { cl: nkm.io.resources.TextResource }; } @@ -88,7 +88,7 @@ class BindingManager extends base { Get(p_variant) { return this._map.get(p_variant); } UnbindVariants(p_glyph) { - p_glyph._variants.ForEach((item) => { this.Unbind(p_glyph); }); + p_glyph._variants.forEach((item) => { this.Unbind(p_glyph); }); } _OnBindingReleased(p_binding) { @@ -123,7 +123,7 @@ class BindingManager extends base { * @description TODO */ Clear() { - while (!this._list.isEmpty) { this.Unbind(this._reverseMap.get(this._list.last)); } + while (this._list.length) { this.Unbind(this._reverseMap.get(this._list.last)); } } _CleanUp() { diff --git a/app/js/editors/helpers/surveyor.js b/app/js/editors/helpers/surveyor.js index 7c9d604..95a209d 100644 --- a/app/js/editors/helpers/surveyor.js +++ b/app/js/editors/helpers/surveyor.js @@ -8,7 +8,7 @@ const mkfData = require(`../../data`); const SIGNAL = require(`../../signal`); -const base = nkm.com.pool.DisposableObjectEx; +const base = nkm.com.Observable; class Surveyor extends base { constructor() { super(); } @@ -234,14 +234,14 @@ class Surveyor extends base { layerStack = [], validSet = new Set(), vCount = this._cachedVariants.length, - refLayerList = this._refVariant._layers._array, + refLayerList = this._refVariant._layers, needRebuild = true; // Organize layer by names & count this._cachedVariants.forEach(variant => { - variant._layers.ForEach(layer => { + variant._layers.forEach(layer => { let id = this._LyrID(layer), @@ -362,16 +362,16 @@ class Surveyor extends base { //#region Apply changes - _OnTransformValueChanged(p_data, p_id, p_valueObj, p_oldValue) { + _OnTransformValueChanged(p_data, p_id, p_newValue, p_oldValue) { this._editor.Do( - mkfOperations.actions.SetProperty, { - target: this._cachedTransforms, id: p_id, value: p_valueObj.value + nkm.data.ops.actions.SetPropertyValue, { + target: this._cachedTransforms, id: p_id, value: p_newValue }); } - _OnRefGlyphValueChanged(p_data, p_id, p_valueObj, p_oldValue) { + _OnRefGlyphValueChanged(p_data, p_id, p_newValue, p_oldValue) { if (p_id == mkfData.IDS.SHOW_ALL_LAYERS) { this._RebuildLayerCache(); @@ -380,12 +380,12 @@ class Surveyor extends base { this._editor.Do( mkfOperations.actions.SetProperty, { - target: this._cachedVariants, id: p_id, value: p_valueObj.value + target: this._cachedVariants, id: p_id, value: p_newValue }); } - _OnRefLayerValueChanged(p_variant, p_layer, p_id, p_valueObj, p_oldValue) { + _OnRefLayerValueChanged(p_variant, p_layer, p_id, p_newValue, p_oldValue) { if (p_id == mkfData.IDS.LYR_INDEX) { return; } //p_id == mkfData.IDS.LYR_IS_CONTROL_LAYER @@ -394,7 +394,7 @@ class Surveyor extends base { if (!layerList || layerList.length == 0) { return; } if (p_id == mkfData.IDS.LYR_IS_CONTROL_LAYER) { - this._editor.cmdLayerControl.toggle = p_valueObj.value; + this._editor.cmdLayerControl.toggle = p_newValue; this._editor.cmdLayerControl.Execute(layerList); return; } @@ -402,7 +402,7 @@ class Surveyor extends base { this._editor.Do( mkfOperations.actions.SetProperty, { - target: layerList, id: p_id, value: p_valueObj.value + target: layerList, id: p_id, value: p_newValue }); } diff --git a/app/js/editors/inspectors/display-inspector.js b/app/js/editors/inspectors/display-inspector.js index 1b08ae4..4f71ed2 100644 --- a/app/js/editors/inspectors/display-inspector.js +++ b/app/js/editors/inspectors/display-inspector.js @@ -7,12 +7,12 @@ const uilib = nkm.uilib; const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); -const base = nkm.datacontrols.InspectorView; +const base = nkm.uilib.inspectors.ValueList; class DisplayInspector extends base { constructor() { super(); } static __controls = [ - { cl: mkfWidgets.ControlHeader, options: { label: `Display options` } }, + { cl: nkm.datacontrols.widgets.MiniHeader, options: { label: `Display options` } }, //{ options: { propertyId: mkfData.IDS.COLOR_PREVIEW } }, { options: { @@ -25,57 +25,6 @@ class DisplayInspector extends base { }, ]; - _Init() { - super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; - this._builder.defaultCSS = `control`; - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - 'min-width': '350px', - //'flex': '0 0 auto', - }, - '.list': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', - 'overflow': 'auto', - 'padding': '10px', - }, - '.control': { - 'flex': '0 1 auto', - 'margin-bottom': '5px' - } - }, base._Style()); - } - - _Render() { - - this._body = ui.dom.El(`div`, { class: `list` }, this._host); - this._builder.host = this._body; - - super._Render(); - - this._controls = ui.dom.El("div", { class: 'controls' }, this._body); - - - // Preview align mode (left/center/right) - - // ... - - } - - - - //#region Family properties - - //#endregion - - } -module.exports = DisplayInspector; -ui.Register(`mkf-display-inspector`, DisplayInspector); \ No newline at end of file +module.exports = DisplayInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/family-actions-inspector.js b/app/js/editors/inspectors/family-actions-inspector.js index 8b7f517..f1f730e 100644 --- a/app/js/editors/inspectors/family-actions-inspector.js +++ b/app/js/editors/inspectors/family-actions-inspector.js @@ -22,20 +22,17 @@ class FamilyActionsInspector extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, }, '.body': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, 'overflow': 'auto', 'padding': '10px', 'justify-content': 'flex-start' }, '.item': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin-bottom': '5px' } }, base._Style()); @@ -54,5 +51,4 @@ class FamilyActionsInspector extends base { } -module.exports = FamilyActionsInspector; -ui.Register(`mkf-family-actions-inspector`, FamilyActionsInspector); \ No newline at end of file +module.exports = FamilyActionsInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/family-content-inspector.js b/app/js/editors/inspectors/family-content-inspector.js index e088b14..75ca288 100644 --- a/app/js/editors/inspectors/family-content-inspector.js +++ b/app/js/editors/inspectors/family-content-inspector.js @@ -55,20 +55,17 @@ class FamilyContentInspector extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, }, '.body': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, 'overflow': 'auto', 'padding': '10px', 'justify-content': 'flex-start' }, '.item': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin-bottom': '5px' } }, base._Style()); @@ -90,17 +87,16 @@ class FamilyContentInspector extends base { //this._categories = this.Attach(mkfWidgets.lists.FilterRoot, `asd`, this._body); this._categories = this.Attach(nkm.uilib.lists.FolderListRoot, `item`, this._body); - this._categories.data = UNICODE.instance._categoriesCatalog; + this._categories.data = UNICODE._categoriesCatalog; this._categories.selStackOverride = this._selStack; //this._blocks = this.Attach(mkfWidgets.lists.BlockRoot, `asd`, this._body); this._blocks = this.Attach(nkm.uilib.lists.FolderListRoot, `item`, this._body); - this._blocks.data = UNICODE.instance._blockCatalog; + this._blocks.data = UNICODE._blockCatalog; this._blocks.selStackOverride = this._selStack; } } -module.exports = FamilyContentInspector; -ui.Register(`mkf-family-content-inspector`, FamilyContentInspector); \ No newline at end of file +module.exports = FamilyContentInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/family-inspector.js b/app/js/editors/inspectors/family-inspector.js index b013bd8..3f7bd8f 100644 --- a/app/js/editors/inspectors/family-inspector.js +++ b/app/js/editors/inspectors/family-inspector.js @@ -4,19 +4,20 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; const uilib = nkm.uilib; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; + const mkfData = require(`../../data`); -const mkfWidgets = require(`../../widgets`); -const base = nkm.datacontrols.InspectorView; +const base = nkm.uilib.inspectors.ValueList; class FamilyInspector extends base { constructor() { super(); } static __controls = [ - { cl:mkfWidgets.ControlHeader, options:{ label:`Definition` } }, + { cl: MiniHeader, options: { label: `Definition` } }, { options: { propertyId: mkfData.IDS.FAMILY } }, - { options:{ propertyId:mkfData.IDS.FONT_STYLE } }, - { options:{ propertyId:mkfData.IDS.WEIGHT_CLASS } }, - { cl:mkfWidgets.ControlHeader, options:{ label:`Infos` } }, + { options: { propertyId: mkfData.IDS.FONT_STYLE } }, + { options: { propertyId: mkfData.IDS.WEIGHT_CLASS } }, + { cl: MiniHeader, options: { label: `Infos` } }, { options: { propertyId: mkfData.IDS.COPYRIGHT } }, //{ options: { propertyId: mkfData.IDS.METADATA } }, { options: { propertyId: mkfData.IDS.DESCRIPTION } }, @@ -25,53 +26,8 @@ class FamilyInspector extends base { //{ options: { propertyId: mkfData.IDS.COLOR_PREVIEW } }, ]; - _Init() { - super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; - this._builder.defaultCSS = `control`; - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - 'min-width':'350px', - //'flex': '0 0 auto', - }, - '.list': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', - 'overflow': 'auto', - 'padding': '10px', - }, - '.control': { - 'flex': '0 1 auto', - 'margin': '0', - 'margin-bottom': '5px' - } - }, base._Style()); - } - - _Render() { - - this._body = ui.dom.El(`div`, { class: `list` }, this._host); - this._builder.host = this._body; - - super._Render(); - - // Preview align mode (left/center/right) - - // ... - - } - - //#region Family properties - - //#endregion - + static __width = `350px`; } -module.exports = FamilyInspector; -ui.Register(`mkf-family-explorer`, FamilyInspector); \ No newline at end of file +module.exports = FamilyInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/family-metrics-inspector.js b/app/js/editors/inspectors/family-metrics-inspector.js index 3da805b..271881f 100644 --- a/app/js/editors/inspectors/family-metrics-inspector.js +++ b/app/js/editors/inspectors/family-metrics-inspector.js @@ -3,38 +3,39 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; + const mkfData = require(`../../data`); -const mkfWidgets = require(`../../widgets`); const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const LOC = require(`../../locales`); -const base = nkm.datacontrols.InspectorView; +const base = nkm.uilib.inspectors.ValueList; class FamilyMetricsInspector extends base { constructor() { super(); } static __controls = [ - //{ cl:mkfWidgets.ControlHeader, options:{ label:`Definition` } }, + //{ cl:MiniHeader, options:{ label:`Definition` } }, //{ options:{ propertyId:mkfData.IDS.FONT_STYLE } }, //{ options:{ propertyId:mkfData.IDS.WEIGHT_CLASS } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Resolution` } }, + { cl: MiniHeader, options: { label: `Resolution` } }, { options: { propertyId: mkfData.IDS.EM_UNITS, command: mkfCmds.SetEM } }, - { options: { propertyId: mkfData.IDS.EM_RESAMPLE, invertInputOrder:true } }, + { options: { propertyId: mkfData.IDS.EM_RESAMPLE, invertInputOrder: true } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Metrics` } }, + { cl: MiniHeader, options: { label: `Metrics` } }, { options: { propertyId: mkfData.IDS.BASELINE } }, { options: { propertyId: mkfData.IDS.ASCENT, command: mkfCmds.SetAscent } }, - { options: { propertyId: mkfData.IDS.ASC_RESAMPLE, invertInputOrder:true } }, + { options: { propertyId: mkfData.IDS.ASC_RESAMPLE, invertInputOrder: true } }, { options: { propertyId: mkfData.IDS.DESCENT } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Control metrics` } }, + { cl: MiniHeader, options: { label: `Control metrics` } }, { options: { propertyId: mkfData.IDS.X_HEIGHT } }, { options: { propertyId: mkfData.IDS.CAP_HEIGHT } }, { options: { propertyId: mkfData.IDS.HEIGHT } }, { options: { propertyId: mkfData.IDS.WIDTH } }, - { options: { propertyId: mkfData.IDS.MONOSPACE, invertInputOrder:true } }, + { options: { propertyId: mkfData.IDS.MONOSPACE, invertInputOrder: true } }, //{ options:{ propertyId:mkfData.IDS.UNDERLINE_POSITION } }, //{ options:{ propertyId:mkfData.IDS.UNDERLINE_THICKNESS } }, //{ options:{ propertyId:mkfData.IDS.H_ORIGIN_X } }, @@ -43,73 +44,35 @@ class FamilyMetricsInspector extends base { //{ options:{ propertyId:mkfData.IDS.V_ORIGIN_Y } }, ]; - static __trControls = [ - { cl: mkfWidgets.ControlHeader, options: { label: `Translations` }, css: 'full' }, - { options: { propertyId: mkfData.IDS.TR_WIDTH_SHIFT }, css: 'full' }, - { options: { propertyId: mkfData.IDS.TR_WIDTH_PUSH }, css: 'full' }, - { options: { propertyId: mkfData.IDS.TR_Y_OFFSET }, css: 'full' }, // - - { cl: mkfWidgets.ControlHeader, options: { label: `Rotation & skews` }, css: 'full' }, - { options: { propertyId: mkfData.IDS.TR_SKEW_ROT_ORDER }, css: 'full' }, - { options: { propertyId: mkfData.IDS.TR_ROTATION_ANCHOR, inputOnly:true }, css:`small` }, // - { options: { propertyId: mkfData.IDS.TR_ROTATION }, css:`large` }, - { options: { propertyId: mkfData.IDS.TR_SKEW_X }, css: 'full' }, // + static __trControls = [ + { cl: MiniHeader, options: { label: `Translations` } }, + { options: { propertyId: mkfData.IDS.TR_WIDTH_SHIFT } }, + { options: { propertyId: mkfData.IDS.TR_WIDTH_PUSH } }, + { options: { propertyId: mkfData.IDS.TR_Y_OFFSET } }, // + + { cl: MiniHeader, options: { label: `Rotation & skews` } }, + { options: { propertyId: mkfData.IDS.TR_SKEW_ROT_ORDER } }, + { options: { propertyId: mkfData.IDS.TR_ROTATION_ANCHOR, inputOnly: true }, css: `small` }, // + { options: { propertyId: mkfData.IDS.TR_ROTATION }, css: `large` }, + { options: { propertyId: mkfData.IDS.TR_SKEW_X } }, // { options: { propertyId: mkfData.IDS.TR_SKEW_Y } }, // ]; - _Init() { - super._Init(); - - this._builder.options = { cl: mkfWidgets.PropertyControl, css: `control` }; - - this._trBuilder = new nkm.datacontrols.helpers.ControlBuilder(this); - this._trBuilder.options = { cl: mkfWidgets.PropertyControl, css: `foldout-item` }; - this.forwardData.To(this._trBuilder, { dataMember: `_transformSettings` }); - this.forwardContext.To(this._trBuilder); - this.forwardEditor.To(this._trBuilder); - - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - 'width': '350px', - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'overflow':`auto` - }, - '.body': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', - 'overflow': 'auto', - 'padding': '10px', - }, - '.control': { - 'flex': '0 0 auto', - 'margin': '0', - 'margin-bottom': '5px' - }, - '.drawer': { - 'padding': `10px`, - 'flex': '1 1 100%', - 'background-color': `rgba(19, 19, 19, 0.25)`, - 'border-radius': '4px', - 'margin-bottom': '0' - } - }, base._Style()); - } + static __width = `350px`; _Render() { - this._body = ui.dom.El(`div`, { class: `body` }, this._host); - this._builder.host = this._body; + super._Render(); - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `control drawer`, this._body); - foldout.options = { title: LOC.labelTrDefaults, icon: `gear`, prefId: `f-metrics-tr`, expanded: true }; - this._trBuilder.host = foldout; - this._trBuilder.Build(this.constructor.__trControls); + nkm.uilib.views.Foldout(this, { + title: LOC.labelTrDefaults, + icon: `gear`, + prefId: `f-metrics-tr`, + expanded: true, + controls: this.constructor.__trControls, + forwardData: { get: `_transformSettings` } + }); + } } diff --git a/app/js/editors/inspectors/glyph-iitem.js b/app/js/editors/inspectors/glyph-iitem.js index 23f488c..4cf99be 100644 --- a/app/js/editors/inspectors/glyph-iitem.js +++ b/app/js/editors/inspectors/glyph-iitem.js @@ -4,6 +4,9 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; const uilib = nkm.uilib; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); @@ -24,28 +27,27 @@ const shouldHideFLAT = (owner) => { return owner.data.Get(mkfData.IDS.FLATTEN_LAYERS); }; -const base = nkm.datacontrols.ControlWidget; +const base = nkm.datacontrols.ControlView; class GlyphVariantInspectorItem extends base { constructor() { super(); } static __controls = [ - { cl: mkfWidgets.ControlHeader, options: { label: `Metrics` } }, + { cl: MiniHeader, options: { label: `Metrics` } }, { options: { propertyId: mkfData.IDS.WIDTH }, disableWhen: { fn: shouldHideWIDTH } }, { options: { propertyId: mkfData.IDS.HEIGHT } }, - //{ cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + //{ cl: MiniHeader, options: { label: `Export` } }, //{ options: { propertyId: mkfData.IDS.DO_EXPORT } }, ]; static __glyphControls = [ - { cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + { cl: MiniHeader, options: { label: `Export` } }, { options: { propertyId: mkfData.IDS.DO_EXPORT }, css: `full` }, ]; _Init() { super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; - this._builder.defaultCSS = `foldout-item`; + this._builder.defaultControlClass = ValueControl; this._flags.Add(this, __nullGlyph, __hasPopout); this._obstructedPreview = false; @@ -69,17 +71,14 @@ class GlyphVariantInspectorItem extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'justify-content': `space-between`, + ...nkm.style.flex.column, }, '.item': { 'margin-bottom': '5px', }, '.preview': { - 'position': 'relative', 'display': 'flex', - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'width': 'calc(100% - 6px)', 'overflow': 'hidden', 'background-color': 'rgba(0,0,0,0.5)', @@ -87,19 +86,16 @@ class GlyphVariantInspectorItem extends base { }, ':host(.has-popout) .preview': { 'opacity': '0.25' }, '.toolbar': { - 'flex': `1 1 auto`, + ...nkm.style.flexItem.fill, 'justify-content': `center`, 'margin-top': '5px', 'padding': '4px 0px', 'border-radius': '4px', 'background-color': `rgba(19, 19, 19, 0.25)` }, - ':host(.null-glyph) .drawer:not(.always-visible)': { 'display': 'none' }, - '.drawer': { - 'flex': '1 1 auto', - 'padding': `10px`, - 'background-color': `rgba(19, 19, 19, 0.25)`, - 'border-radius': '4px', + ':host(.null-glyph) .foldout:not(.always-visible)': { 'display': 'none' }, + '.foldout': { + ...nkm.style.flexItem.fill, }, '.binder': { 'width': '100%', @@ -162,74 +158,55 @@ class GlyphVariantInspectorItem extends base { //Transforms - let foldout = this._Foldout( - { - title: LOC.labelTr, icon: `font-bounds`, prefId: `transforms`, expanded: true, //TODO CHANGE BACK to true - handles: [ - { - icon: 'clipboard-read', htitle: 'Paste transforms [ Ctrl Alt V ]', - trigger: { fn: () => { this.editor.cmdGlyphPasteTransform.Execute(this._data); } }, - } - ] - }, - [ - { cl: TransformSettingsInspector, dataMember: `_transformSettings` }, + let foldout = nkm.uilib.views.Foldout(this, { + title: LOC.labelTr, icon: `font-bounds`, prefId: `transforms`, expanded: true, + handles: [ + { + icon: 'clipboard-read', htitle: 'Paste transforms [ Ctrl Alt V ]', + trigger: { fn: () => { this.editor.cmdGlyphPasteTransform.Execute(this._data); } }, + } ], - ); + controls: [ + { cl: TransformSettingsInspector, get: `_transformSettings` }, + ] + }); this._builder.host = foldout.body; //Layers - foldout = this._Foldout( - { - title: LOC.labelLayers, icon: `component`, prefId: `layers`, expanded: true, - handles: [ - { - icon: 'clipboard-read', htitle: 'Paste components\n---\n+ [ Shift ] Add instead of replace\n+ [ Alt ] Only copy transforms', - trigger: { fn: () => { this.editor.cmdLayersPaste.Execute(this._data); } }, - }, - ] - }, - [ + nkm.uilib.views.Foldout(this, { + title: LOC.labelLayers, icon: `component`, prefId: `layers`, expanded: true, + handles: [ + { + icon: 'clipboard-read', htitle: 'Paste components\n---\n+ [ Shift ] Add instead of replace\n+ [ Alt ] Only copy transforms', + trigger: { fn: () => { this.editor.cmdLayersPaste.Execute(this._data); } }, + }, + ], + controls: [ { options: { propertyId: mkfData.IDS.FLATTEN_LAYERS } }, { options: { propertyId: mkfData.IDS.FLATTEN_MODE }, hideWhen: { fn: shouldHideFLAT } }, { cl: mkfWidgets.LayersView, member: { owner: this, id: `_layers` } }, ] - ); + }); // Settings - foldout = this._Foldout( - { title: LOC.labelSettings, icon: `gear`, prefId: `glyphSettings`, expanded: true }, - [ - //{ cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + nkm.uilib.views.Foldout(this, { + title: LOC.labelSettings, icon: `gear`, prefId: `glyphSettings`, expanded: true, + controls: [ + //{ cl: MiniHeader, options: { label: `Export` } }, { options: { propertyId: mkfData.IDS.DO_EXPORT } }, ] - ); + }); - this._binder = this.Attach(mkfWidgets.ResourceBinding, `foldout-item full`, foldout); + this._binder = this.Attach(mkfWidgets.ResourceBinding, `full`, foldout); this._binder.visible = false; super._Render(); this.focusArea = this; - } - - _Foldout(p_foldout, p_controls, p_css = ``, p_host = null) { - - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `item drawer${p_css ? ' ' + p_css : ''}`, p_host || this); - foldout.options = p_foldout; - - if (p_controls) { - let builder = new nkm.datacontrols.helpers.ControlBuilder(this); - builder.options = { host: foldout, cl: mkfWidgets.PropertyControl, css: `foldout-item` }; - this.forwardData.To(builder); - builder.Build(p_controls); - } - - return foldout; - + } get glyphInfos() { return this._glyphInfos; } diff --git a/app/js/editors/inspectors/glyph-inspector-placeholder.js b/app/js/editors/inspectors/glyph-inspector-placeholder.js index 5db3fff..f52bc1c 100644 --- a/app/js/editors/inspectors/glyph-inspector-placeholder.js +++ b/app/js/editors/inspectors/glyph-inspector-placeholder.js @@ -5,6 +5,9 @@ const ui = nkm.ui; const inputs = nkm.uilib.inputs; const operations = require(`../../operations/index`); +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); @@ -18,7 +21,7 @@ class GlyphInspectorPlaceholder extends base { constructor() { super(); } static __controls = [ - //{ cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + //{ cl: MiniHeader, options: { label: `Export` } }, //{ options: { propertyId: mkfData.IDS.DO_EXPORT } }, //{ options: { propertyId: mkfData.IDS.GLYPH_NAME } },//, css:'separator' ]; @@ -30,14 +33,12 @@ class GlyphInspectorPlaceholder extends base { static _Style() { return nkm.style.Extends({ ':host': { + ...nkm.style.flex.column, 'padding': '10px', - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'position': 'relative', - 'flex':`1 1 auto`, + ...nkm.style.flexItem.fill, }, '.variant': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin-bottom': '3px' }, '.identity': { @@ -47,14 +48,14 @@ class GlyphInspectorPlaceholder extends base { }, '.settings': { - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, 'margin-bottom': '10px' }, '.control': { 'margin-bottom': '5px', }, '.infos': { - '@': [`absolute-center`], + ...nkm.style.rules.absolute.center, 'text-align':'center', 'opacity':'0.5' } diff --git a/app/js/editors/inspectors/glyph-inspector.js b/app/js/editors/inspectors/glyph-inspector.js index aef1842..252463e 100644 --- a/app/js/editors/inspectors/glyph-inspector.js +++ b/app/js/editors/inspectors/glyph-inspector.js @@ -3,6 +3,9 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); @@ -16,7 +19,7 @@ class GlyphInspector extends base { constructor() { super(); } static __controls = [ - //{ cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + //{ cl: MiniHeader, options: { label: `Export` } }, //{ options: { propertyId: mkfData.IDS.GLYPH_NAME } },//, css:'separator' ]; @@ -32,7 +35,7 @@ class GlyphInspector extends base { this._variantCtrl = null; this._variantNoneCtrl = null; - this._builder.defaultControlClass = mkfWidgets.PropertyControl; + this._builder.defaultControlClass = ValueControl; this._builder.defaultCSS = `control`; this._builder.preProcessDataFn = { fn: this._GetGlyph, thisArg: this }; @@ -47,12 +50,12 @@ class GlyphInspector extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'padding': '10px', - 'display': 'flex', - 'flex-flow': 'column nowrap' + ...nkm.style.flex.column, + 'background-color': `rgba(var(--col-base-200-rgb), 1)`, + 'border-left': `1px solid rgba(var(--col-base-400-rgb), 1)`, }, '.variant': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin-bottom': '3px' }, '.identity': { @@ -65,7 +68,7 @@ class GlyphInspector extends base { 'margin-bottom': '5px', }, '.drawer': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'padding': `10px`, 'background-color': `rgba(19, 19, 19, 0.25)`, 'border-radius': '4px', @@ -84,10 +87,10 @@ class GlyphInspector extends base { // Stats - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `item drawer`, this._host); + let foldout = this.Attach(nkm.datacontrols.ControlFoldout, `item drawer`, this._host); foldout.options = { title: LOC.labelDetails, icon: `placement-center`, prefId: `glyph-infos`, expanded: true }; - this._glyphStats = this.Attach(mkfWidgets.GlyphStats, `foldout-item`, foldout); + this._glyphStats = this.Attach(mkfWidgets.GlyphStats, `full`, foldout); this.forwardContext.To(this._glyphStats); this.forwardEditor.To(this._glyphStats); @@ -104,15 +107,26 @@ class GlyphInspector extends base { let glyph = this._GetGlyph(this._data); - if (glyph.isNull) { - glyph.unicodeInfos = this._data; - this._variantCtrl.data = null; // Ensure refresh - } + if (glyph) { + + if (glyph.isNull) { + glyph.unicodeInfos = this._data; + this._variantCtrl.data = null; // Ensure refresh + } + + this._variantCtrl.glyphInfos = this._data; + this._variantCtrl.data = glyph.activeVariant; - this._variantCtrl.glyphInfos = this._data; - this._variantCtrl.data = glyph.activeVariant; + this._glyphStats.data = glyph.activeVariant; - this._glyphStats.data = glyph.activeVariant + } else { + + this._variantCtrl.glyphInfos = null; + this._variantCtrl.data = null; + + this._glyphStats.data = null; + + } } @@ -144,7 +158,7 @@ class GlyphInspector extends base { this._delayedStatsUpdate.Bump(); } - _RefreshStats(){ + _RefreshStats() { this._glyphStats.glyphInfos = null; this._glyphStats.glyphInfos = this._data; } diff --git a/app/js/editors/inspectors/glyph-list-inspector.js b/app/js/editors/inspectors/glyph-list-inspector.js index 60bffc5..671d059 100644 --- a/app/js/editors/inspectors/glyph-list-inspector.js +++ b/app/js/editors/inspectors/glyph-list-inspector.js @@ -3,6 +3,9 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); const mkfOperations = require(`../../operations`); @@ -42,6 +45,7 @@ class GlyphListInspector extends base { this.forwardData.To(this._surveyor); this._previews = []; + this._foldouts = []; this._rectTracker = new ui.helpers.RectTracker(this._Bind(this._OnPreviewRectUpdate)); this.focusArea = this; @@ -53,14 +57,13 @@ class GlyphListInspector extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'padding': '10px', - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'position': 'relative' + ...nkm.style.flex.column, + 'background-color': `rgba(var(--col-base-200-rgb), 1)`, + 'border-left': `1px solid rgba(var(--col-base-400-rgb), 1)`, }, ':host(.sel-invalid) .infos': { 'display': `block` }, '.toolbar': { - 'flex': `0 0 auto`, + ...nkm.style.flexItem.fixed, 'justify-content': `center`, 'margin-bottom': '5px', 'margin-top': '5px', @@ -69,24 +72,21 @@ class GlyphListInspector extends base { 'background-color': `rgba(19, 19, 19, 0.25)` }, '.previews': { - 'flex': `0 0 auto`, + ...nkm.style.flexItem.fixed, 'margin-bottom': '5px', }, '.infos': { 'display': `none`, - '@': [`absolute-center`], + ...nkm.style.rules.absolute.center, 'text-align': `center` }, - '.control, .drawer, .item': { - 'flex': '0 0 auto', + '.foldout, .item': { + ...nkm.style.flexItem.fixed, }, - '.drawer': { - 'padding': `10px`, - 'background-color': `rgba(19, 19, 19, 0.25)`, - 'border-radius': '4px', - 'margin-bottom': '5px', + '.foldout': { + }, - ':host(.sel-invalid) .drawer:not(.always-visible), :host(.sel-invalid) .previews': { 'display': 'none' }, + ':host(.sel-invalid) .foldout:not(.always-visible), :host(.sel-invalid) .previews': { 'display': 'none' }, }, base._Style()); } @@ -106,7 +106,7 @@ class GlyphListInspector extends base { handles: [ { icon: `reset`, htitle: `Reset existing glyphs & create missing ones.\n+ [ Shift ] Also create components matching character decomposition.\n+ [ Alt ] Reset the glyphs path while preserving everything else.`, - trigger: { fn: () => { this.editor.cmdGlyphClear.Execute(this._data.stack._array); } }, + trigger: { fn: () => { this.editor.cmdGlyphClear.Execute(this._data.stack); } }, group: `read` }, { @@ -124,8 +124,6 @@ class GlyphListInspector extends base { ] }; - - // Previews this._groupPreview = this.Attach(mkfWidgets.GlyphPreviewGroup, `previews`); @@ -135,38 +133,46 @@ class GlyphListInspector extends base { // Transforms + local properties - let foldout = this._Foldout( - { title: LOC.labelTr, icon: `font-bounds`, prefId: `transforms`, expanded: true }, - [ - { cl: TransformSettingsSilent, dataMember: `_transformSettings` }, - { cl: mkfWidgets.ControlHeader, options: { label: `Metrics` } }, + let foldout = nkm.uilib.views.Foldout(this, { + title: LOC.labelTr, + icon: `font-bounds`, + prefId: `transforms`, + expanded: true, + controls: [ + { cl: TransformSettingsSilent, get: `_transformSettings` }, + { cl: MiniHeader, options: { label: `Metrics` } }, { options: { propertyId: mkfData.IDS.WIDTH }, disableWhen: { fn: shouldHideWIDTH } }, { options: { propertyId: mkfData.IDS.HEIGHT } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Extras` } }, - ] - ); + { cl: MiniHeader, options: { label: `Extras` } }, + ], + forwardData: false + }); + this._foldouts.push(foldout); // Layers - foldout = this._Foldout( - { - title: LOC.labelLayers, icon: `component`, prefId: `layers`, expanded: true, - handles: [ - { - icon: 'clipboard-read', htitle: 'Paste components\n---\n+ [ Shift ] Add instead of replace\n+ [ Alt ] Only copy transforms', - trigger: { - fn: () => { - if (!this._surveyor._cachedVariants || this._surveyor._cachedVariants.length == 0) { return; } - this.editor.cmdLayersPaste.Execute(this._surveyor._cachedVariants); - } - }, + foldout = nkm.uilib.views.Foldout(this, { + title: LOC.labelLayers, + icon: `component`, + prefId: `layers`, + expanded: true, + handles: [ + { + icon: 'clipboard-read', htitle: 'Paste components\n---\n+ [ Shift ] Add instead of replace\n+ [ Alt ] Only copy transforms', + trigger: { + fn: () => { + if (!this._surveyor._cachedVariants || this._surveyor._cachedVariants.length == 0) { return; } + this.editor.cmdLayersPaste.Execute(this._surveyor._cachedVariants); + } }, - ] - }, - [ - { cl: mkfWidgets.LayersViewSilent, member: `_layersView`, css: `foldout-item` }, - ] - ); + }, + ], + controls: [ + { cl: mkfWidgets.LayersViewSilent, member: `_layersView`, css: `full`, owner: this }, + ], + forwardData: false + }); + this._foldouts.push(foldout); this._layersView._toolbar.CreateHandles( { @@ -208,46 +214,32 @@ class GlyphListInspector extends base { // Settings - foldout = this._Foldout( - { title: LOC.labelSettings, icon: `gear`, prefId: `glyphSettings`, expanded: true }, - [ - { cl: mkfWidgets.ControlHeader, options: { label: `Export` } }, + foldout = nkm.uilib.views.Foldout(this, { + title: LOC.labelSettings, + icon: `gear`, + prefId: `glyphSettings`, + expanded: true, + controls: [ + { cl: MiniHeader, options: { label: `Export` } }, { options: { propertyId: mkfData.IDS.DO_EXPORT }, css: `full` }, - ] - ); + ], + forwardData: false + }); + this._foldouts.push(foldout); // Clear bindings - this._clearBindings = this.Attach(nkm.uilib.buttons.Button, `foldout-item full`, foldout); + this._clearBindings = this.Attach(nkm.uilib.buttons.Button, `full`, foldout); this._clearBindings.options = { label: `Clear resource bindings`, icon: `remove`, trigger: { fn: () => { this._surveyor._ClearRscBindings(); } } }; - - - } - - _Foldout(p_foldout, p_controls, p_css = ``, p_host = null) { - - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `item drawer${p_css ? ' ' + p_css : ''}`, p_host || this); - foldout.options = p_foldout; - - if (p_controls) { - let builder = new nkm.datacontrols.helpers.ControlBuilder(this); - builder.options = { host: foldout, cl: mkfWidgets.PropertyControl, css: `foldout-item` }; - builder.Build(p_controls); - if (!this._builders) { this._builders = []; } - this._builders.push(builder); - } - - return foldout; - } //#endregion - _FlushData() { this._builders.forEach(builder => { builder.data = null; }); } - _ReassignData() { this._builders.forEach(builder => { builder.data = this._surveyor._refVariant; }); } + _FlushData() { for (const foldout of this._foldouts) { foldout.builder.data = null; } } + _ReassignData() { for (const foldout of this._foldouts) { foldout.builder.data = this._surveyor._refVariant; } } _OnSurveyorUpdate(p_hasContent = false) { @@ -298,12 +290,12 @@ class GlyphListInspector extends base { } } - _UpdateTexts(){ + _UpdateTexts() { this._createLigaBtn.htitle = `Create ligature : ${this.editor.cmdLigaFromSelection._GetLigaName()}\n---\n+ [ Shift ] Create components from ligature decomposition.`; } - _OnGlyphBumped(p_data, p_infos) { - this._UpdatePreviews(); + _OnGlyphBumped(p_data, p_infos) { + this._UpdatePreviews(); this._UpdateTexts(); } diff --git a/app/js/editors/inspectors/ligature-creation-inspector.js b/app/js/editors/inspectors/ligature-creation-inspector.js index 5e67e79..acd4755 100644 --- a/app/js/editors/inspectors/ligature-creation-inspector.js +++ b/app/js/editors/inspectors/ligature-creation-inspector.js @@ -20,18 +20,16 @@ class LigatureCreationInspector extends base { return nkm.style.Extends({ ':host': { 'min-width': '350px', - //'flex': '0 0 auto', + //...nkm.style.flexItem.fixed, }, '.list': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, 'overflow': 'auto', 'padding': '10px', }, '.control': { - 'flex': '0 1 auto', + ...nkm.style.flexItem.shrink, 'margin-bottom': '5px' } }, base._Style()); @@ -58,5 +56,4 @@ class LigatureCreationInspector extends base { } -module.exports = LigatureCreationInspector; -ui.Register(`mkf-ligature-inspector`, LigatureCreationInspector); \ No newline at end of file +module.exports = LigatureCreationInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/pangram-inspector.js b/app/js/editors/inspectors/pangram-inspector.js index be6007d..f23855c 100644 --- a/app/js/editors/inspectors/pangram-inspector.js +++ b/app/js/editors/inspectors/pangram-inspector.js @@ -30,7 +30,7 @@ class PangramInspector extends base { _Init() { super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; + this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this._builder.defaultCSS = `control`; this._inspectionHandler = new nkm.datacontrols.helpers.InspectionDataHandler(this); @@ -46,32 +46,28 @@ class PangramInspector extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, }, '.body': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fill, + ...nkm.style.rules.gap.small, 'overflow': 'auto', 'padding': '10px', 'justify-content': 'center' }, '.footer': { - 'flex': '0 0 auto', + ...nkm.style.flex.column, + ...nkm.style.flexItem.fixed, 'width': 'auto', 'padding': '10px', - 'display': 'flex', - 'flex-flow': 'column nowrap' }, '.item': { 'margin-bottom': `4px` }, '.sliders': { - 'display': 'flex', - 'flex-flow': 'row wrap', + ...nkm.style.flex.rows, + 'gap':'8px 0', 'align-items': 'center', 'margin': '10px 0px 10px 0px' }, @@ -79,7 +75,7 @@ class PangramInspector extends base { 'flex': '1 1 50%', }, '.pangram': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'width': '100%', 'overflow-y': 'auto' }, @@ -114,9 +110,9 @@ class PangramInspector extends base { this._toolbar = this.Attach(ui.WidgetBar, `item toolbar`, this._footer); this._toolbar.options = { - defaultWidgetClass: nkm.uilib.inputs.InlineSelect, + defaultWidgetClass: nkm.uilib.inputs.SelectInline, size: ui.FLAGS.SIZE_S, - stretch: ui.WidgetBar.FLAG_STRETCH_SQUEEZE, + stretch: ui.FLAGS.STRETCH_SQUEEZE, inline: true, handles: [ { @@ -204,8 +200,8 @@ class PangramInspector extends base { htitle: `Append the current selection at the end of the current text\n---\n+ [ Shift ] Separate each characters by an space.`, trigger: { fn: () => { - let txt = ``, space = ui.INPUT.shift ? ` ` : ``; - this.editor.inspectedData.stack.ForEach(i => { txt += `${i.char}${space}` }, true); + let txt = ``, space = ui.INPUT.shiftKey ? ` ` : ``; + this.editor.inspectedData.stack.forEach(i => { txt += `${i.char}${space}` }, true); txt = this._text.handler.currentValue + txt; this._text.handler.changedValue = txt == `` ? longPangram : txt; this._text.handler.SubmitValue(); @@ -218,8 +214,8 @@ class PangramInspector extends base { htitle: `Set the text to be the current viewport selection.\n---\n+ [ Shift ] Separate each characters by an space.`, trigger: { fn: () => { - let txt = ``, space = ui.INPUT.shift ? ` ` : ``; - this.editor.inspectedData.stack.ForEach(i => { txt += `${i.char}${space}` }, true); + let txt = ``, space = ui.INPUT.shiftKey ? ` ` : ``; + this.editor.inspectedData.stack.forEach(i => { txt += `${i.char}${space}` }, true); this._text.handler.changedValue = txt == `` ? longPangram : txt; this._text.handler.SubmitValue(); }, @@ -253,13 +249,13 @@ class PangramInspector extends base { } _OnSelectionUpdated(p_sel) { - if (p_sel.stack.count == 0) { + if (!p_sel.stack.length) { this._pangramRenderer.highlightList = null; return; } let hlist = []; - p_sel.stack.ForEach((infos) => { + p_sel.stack.forEach((infos) => { hlist.push(infos.char); }); diff --git a/app/js/editors/inspectors/tr-settings-inspector.js b/app/js/editors/inspectors/tr-settings-inspector.js index 13899bf..57f3f35 100644 --- a/app/js/editors/inspectors/tr-settings-inspector.js +++ b/app/js/editors/inspectors/tr-settings-inspector.js @@ -4,10 +4,10 @@ const nkm = require(`@nkmjs/core`); const ui = nkm.ui; const uilib = nkm.uilib; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; + const LOC = require(`../../locales`); -const UNICODE = require(`../../unicode`); const mkfData = require(`../../data`); -const mkfWidgets = require(`../../widgets`); // Manages what is shown & selectable in the viewport. @@ -16,23 +16,23 @@ const isMANUAL = (owner) => { return owner.data.Get(mkfData.IDS.TR_SCALE_MODE) = const isNRM = (owner) => { return owner.data.Get(mkfData.IDS.TR_SCALE_MODE) == mkfData.ENUMS.SCALE_NORMALIZE; }; const isRNRM = (owner) => { return owner.data.Get(mkfData.IDS.TR_SCALE_MODE) != mkfData.ENUMS.SCALE_NORMALIZE; }; -const base = nkm.datacontrols.InspectorView; +const base = nkm.uilib.inspectors.ValueList; class TransformSettingsInspector extends base { constructor() { super(); } static __controls = [ - { options: { propertyId: mkfData.IDS.TR_BOUNDS_MODE, inputOnly: true }, css: 'full' }, - { cl: mkfWidgets.ControlHeader, options: { label: `Scaling` }, css: 'header' }, + { options: { propertyId: mkfData.IDS.TR_BOUNDS_MODE, inputOnly: true } }, + { cl: MiniHeader, options: { label: `Scaling` } }, { options: { propertyId: mkfData.IDS.TR_SCALE_MODE, inputOnly: true }, css: 'large' }, { options: { propertyId: mkfData.IDS.TR_SCALE_FACTOR }, requireData: true, hideWhen: { fn: isMANUAL } }, { options: { propertyId: mkfData.IDS.TR_NRM_FACTOR }, requireData: true, hideWhen: { fn: isNRM } }, - { cl: mkfWidgets.ControlHeader, options: { label: `Anchoring & Alignment` }, css: 'header' }, - { options: { propertyId: mkfData.IDS.TR_ANCHOR, inputOnly: true }, css: 'vsmall' }, + { cl: MiniHeader, options: { label: `Anchoring & Alignment` } }, + { options: { propertyId: mkfData.IDS.TR_ANCHOR, inputOnly: true }, css: 'xsmall' }, { options: { propertyId: mkfData.IDS.TR_VER_ALIGN, inputOnly: true }, css: 'small' }, - //{ cl: mkfWidgets.ControlHeader, options: { label: `Horizontal align` }, css: 'header' }, + //{ cl: MiniHeader, options: { label: `Horizontal align` } }, { options: { propertyId: mkfData.IDS.TR_HOR_ALIGN, inputOnly: true }, css: 'small' }, - { cl: mkfWidgets.ControlHeader, options: { label: LOC.labelOffsets }, css: 'header', requireData: true }, //, disableWhen: { fn: isXMIN } + { cl: MiniHeader, options: { label: LOC.labelOffsets }, requireData: true }, //, disableWhen: { fn: isXMIN } { options: { propertyId: mkfData.IDS.TR_WIDTH_SHIFT }, requireData: true, disableWhen: { fn: isRNRM } }, // { options: { propertyId: mkfData.IDS.TR_WIDTH_PUSH }, requireData: true, disableWhen: { fn: isRNRM } }, // { options: { propertyId: mkfData.IDS.TR_AUTO_WIDTH }, requireData: true, disableWhen: { fn: isRNRM } }, // @@ -49,15 +49,8 @@ class TransformSettingsInspector extends base { ]; _Init() { - super._Init(); - - this._builder.options = { cl: mkfWidgets.PropertyControl, css: `control` }; - this._trBuilder = new nkm.datacontrols.helpers.ControlBuilder(this); - this._trBuilder.options = { cl: mkfWidgets.PropertyControl, css: `foldout-item` }; - this.forwardData.To(this._trBuilder); - this.forwardContext.To(this._trBuilder); - this.forwardEditor.To(this._trBuilder); + super._Init(); this._dataPreProcessor = (p_owner, p_data) => { if (nkm.u.isInstanceOf(p_data, mkfData.Glyph)) { return p_data.family.transformSettings; } @@ -65,52 +58,24 @@ class TransformSettingsInspector extends base { if (nkm.u.isInstanceOf(p_data, mkfData.Family)) { return p_data.transformSettings; } return p_data; }; - } - static _Style() { - return nkm.style.Extends({ - ':host': { - '@': ['fade-in'], - 'display': 'flex', - 'flex-flow': 'row wrap', - //'min-height': '0', - //'overflow': 'auto', - //'padding': '10px', - 'align-content': 'flex-start', - }, - '.control': { - 'flex': '1 1 100%', - }, - '.small': { 'flex': '1 1 45%' }, - '.header': { - 'margin': '5px 2px 5px 2px' - }, - '.small': { 'flex': '1 1 25%' }, - '.vsmall': { 'flex': '1 1 15%' }, - '.large': { 'flex': '1 1 80%' }, - '.drawer': { - 'padding': `10px`, - 'flex': '1 1 100%', - 'background-color': `rgba(19, 19, 19, 0.25)`, - 'border-radius': '4px', - 'order':`500` - } - }, base._Style()); } _Render() { super._Render(); - this._advancedFoldout = this.Attach(nkm.uilib.widgets.Foldout, `control drawer foldout-item`, this._body); - this._advancedFoldout.options = { title: LOC.labelTrAdvanced, icon: `gear`, prefId: `advanced-tr`, expanded: false }; - this._trBuilder.host = this._advancedFoldout; - this._trBuilder.Build(this.constructor.__trControls); + nkm.uilib.views.Foldout(this, { + title: LOC.labelTrAdvanced, + icon: `gear`, + prefId: `advanced-tr`, + expanded: false, + controls: this.constructor.__trControls + }); } } -module.exports = TransformSettingsInspector; -ui.Register(`mkf-transform-settings-inspector`, TransformSettingsInspector); \ No newline at end of file +module.exports = TransformSettingsInspector; \ No newline at end of file diff --git a/app/js/editors/inspectors/tr-settings-silent-inspector.js b/app/js/editors/inspectors/tr-settings-silent-inspector.js index 6de1792..d15ab13 100644 --- a/app/js/editors/inspectors/tr-settings-silent-inspector.js +++ b/app/js/editors/inspectors/tr-settings-silent-inspector.js @@ -28,5 +28,4 @@ class TransformSettingsSilentInspector extends base { } -module.exports = TransformSettingsSilentInspector; -ui.Register(`mkf-transform-settings-silent-inspector`, TransformSettingsSilentInspector); \ No newline at end of file +module.exports = TransformSettingsSilentInspector; \ No newline at end of file diff --git a/app/js/editors/viewports/glyph-group-footer.js b/app/js/editors/viewports/glyph-group-footer.js index fde5994..b4d3531 100644 --- a/app/js/editors/viewports/glyph-group-footer.js +++ b/app/js/editors/viewports/glyph-group-footer.js @@ -29,7 +29,7 @@ class GlyphGroupFooter extends base { _Init() { super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; + this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this._builder.defaultCSS = `control`; } @@ -39,7 +39,6 @@ class GlyphGroupFooter extends base { 'min-height': 'auto', 'padding': '10px 20px', 'overflow': 'clip', - 'position': 'relative', }, '.title': { 'margin-bottom': '10px' @@ -53,10 +52,6 @@ class GlyphGroupFooter extends base { }, base._Style()); } - _OnEditorChanged(p_oldEditor) { - this._displayInspector.editor = this._editor; - } - _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); //this._title.Set(p_data.Resolve(mkfData.IDS.FAMILY)); diff --git a/app/js/editors/viewports/glyph-group-header.js b/app/js/editors/viewports/glyph-group-header.js index ff8fdb2..1848c4e 100644 --- a/app/js/editors/viewports/glyph-group-header.js +++ b/app/js/editors/viewports/glyph-group-header.js @@ -37,9 +37,8 @@ class GlyphGroupHeader extends base { 'height': `32px`, }, '.toolbar': { - 'display': 'flex', - 'flex-flow': 'row wrap', - 'justify-content': 'space-between' + ...nkm.style.flex.rows, + ...nkm.style.flex.align.center.spread, } }, base._Style()); } @@ -104,11 +103,7 @@ class GlyphGroupHeader extends base { } - get cmdContent() { return ui.INPUT.shift ? this._parent._content : null; } - - _OnEditorChanged(p_oldEditor) { - this._displayInspector.editor = this._editor; - } + get cmdContent() { return ui.INPUT.shiftKey ? this._parent._content : null; } _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); diff --git a/app/js/editors/viewports/glyph-group-search.js b/app/js/editors/viewports/glyph-group-search.js index b80c0dd..6450105 100644 --- a/app/js/editors/viewports/glyph-group-search.js +++ b/app/js/editors/viewports/glyph-group-search.js @@ -4,6 +4,9 @@ const nkm = require(`@nkmjs/core`); const u = nkm.u; const ui = nkm.ui; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const SIGNAL = require(`../../signal`); const mkfData = require(`../../data`); const mkfWidgets = require(`../../widgets`); @@ -14,10 +17,10 @@ class GlyphGroupSearch extends base { constructor() { super(); } static __controls = [ - //{ cl: mkfWidgets.ControlHeader, options: { label: `Boundaries` }, css: 'header' }, - { options: { propertyId: mkfData.IDS_EXT.SEARCH_ENABLED, invertInputOrder:true }, css: `main-toggle` }, - { options: { propertyId: mkfData.IDS_EXT.SEARCH_TERM, inputOnly: true }, css: `search` }, - //{ options: { propertyId: mkfData.IDS_EXT.CASE_INSENSITIVE, invertInputOrder: true }, css: `large` }, + //{ cl: MiniHeader, options: { label: `Boundaries` } }, + { options: { propertyId: nkm.data.IDS.SEARCH_ENABLED, invertInputOrder:true }, css: `main-toggle` }, + { options: { propertyId: nkm.data.IDS.SEARCH_TERMS, inputOnly: true }, css: `search` }, + //{ options: { propertyId: nkm.data.IDS.SEARCH_CASE_SENSITIVE, invertInputOrder: true }, css: `large` }, { options: { propertyId: mkfData.IDS_EXT.ADD_COMPOSITION, invertInputOrder: true }, css: `large` }, { options: { propertyId: mkfData.IDS_EXT.MUST_EXISTS, invertInputOrder: true }, css: `large` }, ]; @@ -37,11 +40,11 @@ class GlyphGroupSearch extends base { this._flags.Add(this, `enabled`); this._dataObserver - .Hook(SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this) - .Hook(SIGNAL.SEARCH_TOGGLED, this._OnSearchToggle, this) - .Hook(SIGNAL.SEARCH_PROGRESS, this._OnSearchProgress, this); + .Hook(nkm.data.SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this) + .Hook(nkm.data.SIGNAL.SEARCH_TOGGLED, this._OnSearchToggle, this) + .Hook(nkm.data.SIGNAL.SEARCH_PROGRESS, this._OnSearchProgress, this); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; + this._builder.defaultControlClass = ValueControl; this._builder.defaultCSS = `control`; } @@ -49,30 +52,28 @@ class GlyphGroupSearch extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - '@': ['fade-in'], - 'display': 'flex', - 'flex-flow': 'row wrap', + ...nkm.style.flex.rows, + ...nkm.style.rules.fadeIn, //'min-height': '0', //'overflow': 'auto', //'padding': '10px', 'align-content': 'flex-start', 'background-color': 'rgba(46,46,46,0.5)', - 'padding': '10px 20px 5px 20px', + 'padding': '10px 20px 10px 20px', 'min-height': '28px', //'border-radius':'5px', //'margin':'0 10px' }, '.control': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin-right': '10px', //'margin-bottom': '0'', }, '.main-toggle': { 'flex': '0 0 115px' }, - '.search': { 'flex': '1 1 auto' }, + '.search': { ...nkm.style.flexItem.fill, }, '.large': { 'margin-right': '10px' }, - ':host(.enabled)': { 'background-color': 'rgba(var(--col-active-dark-rgb),0.5)', }, + ':host(.enabled)': { 'background-color': 'rgba(var(--col-active-low-rgb),0.5)', }, ':host(:not(.enabled)) .control:not(.main-toggle)': { opacity: 0.5, 'pointer-events': 'none' }, '.small': { 'flex': '1 1 45%' @@ -81,10 +82,7 @@ class GlyphGroupSearch extends base { 'margin': '5px 2px 5px 2px' }, '.progress': { - 'position': 'absolute', - 'bottom': '0', - 'left': '0', - 'width': '100%' + ...nkm.style.rules.tape.bottom, } }, base._Style()); } @@ -100,7 +98,7 @@ class GlyphGroupSearch extends base { } } - get activeSearch() { return this._data ? this._data.Get(mkfData.IDS_EXT.SEARCH_ENABLED) : false; } + get activeSearch() { return this._data ? this._data.Get(nkm.data.IDS.SEARCH_ENABLED) : false; } set status(p_value) { this._status = p_value; @@ -109,7 +107,7 @@ class GlyphGroupSearch extends base { _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); - this._flags.Set(`enabled`, p_data.Get(mkfData.IDS_EXT.SEARCH_ENABLED)); + this._flags.Set(`enabled`, p_data.Get(nkm.data.IDS.SEARCH_ENABLED)); } _OnSearchProgress(p_progress) { diff --git a/app/js/editors/viewports/glyph-group-viewport.js b/app/js/editors/viewports/glyph-group-viewport.js index 63663f5..4f82bf9 100644 --- a/app/js/editors/viewports/glyph-group-viewport.js +++ b/app/js/editors/viewports/glyph-group-viewport.js @@ -46,9 +46,9 @@ class GlyphGroupViewport extends base { this._searchObserver = new nkm.com.signals.Observer(); this._searchObserver - .Hook(SIGNAL.SEARCH_TOGGLED, this._OnSearchToggled, this) - .Hook(SIGNAL.SEARCH_STARTED, this._OnSearchStarted, this) - .Hook(SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this); + .Hook(nkm.data.SIGNAL.SEARCH_TOGGLED, this._OnSearchToggled, this) + .Hook(nkm.data.SIGNAL.SEARCH_STARTED, this._OnSearchStarted, this) + .Hook(nkm.data.SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this); this._searchActive = false; @@ -85,8 +85,8 @@ class GlyphGroupViewport extends base { this._contentRange = new RangeContent(); this._contentRange.Watch(nkm.com.SIGNAL.READY, this._OnRangeReady, this); this.forwardData - .To(this._contentRange, { mapping: `family` }) - .To(this, { dataMember: `searchSettings`, mapping: `searchSettings` }); + .To(this._contentRange, { set: `family` }) + .To(this, { get: `searchSettings`, set: `searchSettings` }); this._content = null; @@ -99,25 +99,23 @@ class GlyphGroupViewport extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, '--streamer-gap': '10px', - 'overflow': 'clip' + 'overflow': 'clip', + 'background-color': `rgba(var(--col-base-200-rgb), 0.5)`, }, '.header, .search, .footer': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, }, '.dom-stream': { - 'position': 'relative', - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'overflow': 'auto', }, '.dom-stream.empty': { 'display': 'block !important' }, '.search-status': { - '@': ['absolute-center'] + ...nkm.style.rules.absolute.center, } }, base._Style()); } @@ -171,12 +169,14 @@ class GlyphGroupViewport extends base { } set searchSettings(p_value) { + if (this._searchSettings == p_value) { return; } this._searchSettings = p_value; this._searchObserver.ObserveOnly(p_value); this._search.data = p_value; this._OnSearchToggled(); + } set displayRange(p_value) { @@ -206,9 +206,9 @@ class GlyphGroupViewport extends base { //#region search _OnSearchToggled() { - + let oldValue = this._searchActive; - this._searchActive = this._searchSettings ? this._searchSettings.Get(IDS_EXT.SEARCH_ENABLED) : false; + this._searchActive = this._searchSettings ? this._searchSettings.Get(nkm.data.IDS.SEARCH_ENABLED) : false; if (oldValue == this._searchActive) { return; } @@ -240,7 +240,6 @@ class GlyphGroupViewport extends base { if (p_array != null) { let index = p_array.indexOf(this.editor.inspectedData.lastItem); if (index != -1) { this._domStreamer.SetFocusIndex(index); } - } } @@ -295,12 +294,6 @@ class GlyphGroupViewport extends base { _RefreshItems() { this._domStreamer._Stream(null, null, true); - /* - for (let i = 0; i < this._displayList.count; i++) { - let item = this._displayList.At(i); - if (`_UpdateGlyphPreview` in item) { item._UpdateGlyphPreview(); } - } - */ } //#endregion diff --git a/app/js/editors/viewports/glyph-group.js b/app/js/editors/viewports/glyph-group.js index dac5110..57e58be 100644 --- a/app/js/editors/viewports/glyph-group.js +++ b/app/js/editors/viewports/glyph-group.js @@ -45,27 +45,20 @@ class GlyphGroup extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, }, '.header': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'row nowrap', - 'align-items': 'center' + ...nkm.style.flex.row, + ...nkm.style.flex.align.center.all, }, '.body': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'row wrap', - //'justify-content': 'space-evenly' + ...nkm.style.flex.rows, }, '.group': { - 'flex': '1 0 auto' + ...nkm.style.flexItem.grow, }, '.item': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin':'3px' } }, base._Style()); diff --git a/app/js/editors/viewports/pangram-footer.js b/app/js/editors/viewports/pangram-footer.js index 3aa6347..6d84e89 100644 --- a/app/js/editors/viewports/pangram-footer.js +++ b/app/js/editors/viewports/pangram-footer.js @@ -29,7 +29,7 @@ class PangramFooter extends base { _Init() { super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; + this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this._builder.defaultCSS = `control`; } @@ -56,10 +56,6 @@ class PangramFooter extends base { super._Render(); } - _OnEditorChanged(p_oldEditor) { - this._displayInspector.editor = this._editor; - } - _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); //this._title.Set(p_data.Resolve(mkfData.IDS.FAMILY)); diff --git a/app/js/editors/viewports/pangram-header.js b/app/js/editors/viewports/pangram-header.js index 826200f..e1f9b61 100644 --- a/app/js/editors/viewports/pangram-header.js +++ b/app/js/editors/viewports/pangram-header.js @@ -34,9 +34,8 @@ class PangramHeader extends base { 'margin-bottom': '10px' }, '.toolbar': { - 'display': 'flex', - 'flex-flow': 'row nowrap', - 'justify-content': 'space-between' + ...nkm.style.flex.row, + ...nkm.style.flex.align.center.spread, } }, base._Style()); } @@ -53,7 +52,7 @@ class PangramHeader extends base { this._tagBar = this.Attach(ui.WidgetBar, `tagbar left`, toolbar); this._tagBar.options = { defaultWidgetClass: nkm.uilib.widgets.Tag, - size: ui.FLAGS.SIZE_XS + /* size: ui.FLAGS.SIZE_XS */ }; this._optionsBar = this.Attach(ui.WidgetBar, `right`, toolbar); @@ -92,10 +91,6 @@ class PangramHeader extends base { } - _OnEditorChanged(p_oldEditor) { - this._displayInspector.editor = this._editor; - } - _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); //this._title.Set(p_data.Resolve(mkfData.IDS.FAMILY)); diff --git a/app/js/editors/viewports/pangram-viewport.js b/app/js/editors/viewports/pangram-viewport.js index ff176f6..9f20077 100644 --- a/app/js/editors/viewports/pangram-viewport.js +++ b/app/js/editors/viewports/pangram-viewport.js @@ -30,25 +30,22 @@ class PangramViewport extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', + ...nkm.style.flex.column, '--streamer-gap': '10px', 'overflow': 'clip' }, '.header, .search, .footer': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, }, '.dom-stream': { - 'position': 'relative', - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'overflow': 'auto', }, '.dom-stream.empty': { 'display': 'block !important' }, '.search-status': { - '@': ['absolute-center'] + ...nkm.style.rules.absolute.center, } }, base._Style()); } diff --git a/app/js/explorers/index.js b/app/js/explorers/index.js index 950bd46..7f01f7c 100644 --- a/app/js/explorers/index.js +++ b/app/js/explorers/index.js @@ -3,6 +3,5 @@ module.exports = { MainExplorer: require(`./explorer-main`), - PrefsExplorer: require(`./prefs-explorer`), } \ No newline at end of file diff --git a/app/js/explorers/prefs-explorer.js b/app/js/explorers/prefs-explorer.js deleted file mode 100644 index 10e7732..0000000 --- a/app/js/explorers/prefs-explorer.js +++ /dev/null @@ -1,129 +0,0 @@ -const nkm = require(`@nkmjs/core`); -const ui = nkm.ui; -const uilib = nkm.uilib; - -const mkfData = require(`../data`); -const mkfWidgets = require(`../widgets`); - -const isAutoSave = (owner) => { return owner.data ? owner.data.Get(mkfData.IDS_PREFS.AUTOSAVE) : true; }; - -const base = uilib.overlays.ControlDrawer; -class PrefsExplorer extends base { - constructor() { super(); } - - static __controls = []; - - _Init() { - super._Init(); - this._builder.defaultControlClass = mkfWidgets.PropertyControl; - this._builder.defaultCSS = `control`; - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - 'min-width': '350px', - //'flex': '0 0 auto', - }, - '.list': { - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'flex': '1 1 auto', - 'min-height': '0', - 'overflow': 'auto', - 'padding': '10px', - }, - '.body': { - 'padding': `20px 20px`, - }, - '.control': { - 'flex': '0 1 auto', - 'margin-bottom': '5px' - }, - '.separator': { - //'border-top':'1px solid gray' - }, - '.drawer': { - 'flex': '1 1 auto', - 'width': `350px`, - 'padding': `10px`, - 'background-color': `rgba(19, 19, 19, 0.15)`, - 'border-radius': '4px', - 'margin-bottom': '5px', - } - }, base._Style()); - } - - _Render() { - - super._Render(); - - this._Foldout( - { title: `Autosave`, icon: `save`, prefId: `appsettings.autosave`, expanded: true }, - [ - { options: { propertyId: mkfData.IDS_PREFS.AUTOSAVE, invertInputOrder:true } }, - { options: { propertyId: mkfData.IDS_PREFS.AUTOSAVE_TIMER }, disableWhen: { fn: isAutoSave } }, - ] - ); - - this._Foldout( - { title: `Display`, icon: `gear`, prefId: `appsettings.display`, expanded: true }, - [ - { options: { propertyId: mkfData.IDS_PREFS.MANUAL_PREVIEW_REFRESH_THRESHOLD } }, - ] - ); - - this._Foldout( - { title: `Resources`, icon: `directory-download-small`, prefId: `appsettings.rsc`, expanded: true }, - [ - { options: { propertyId: mkfData.IDS_EXT.IMPORT_BIND_RESOURCE, invertInputOrder:true } }, - { options: { propertyId: mkfData.IDS_PREFS.MARK_COLOR } }, - ] - ); - - this._Foldout( - { title: `Third-parties`, icon: `link`, prefId: `appsettings.third`, expanded: true }, - [ - { options: { propertyId: mkfData.IDS_PREFS.SVG_EDITOR_PATH } }, - { options: { propertyId: mkfData.IDS_PREFS.ILLU_PATH } }, - ] - ); - - this._Foldout( - { title: `Defaults`, icon: `font`, prefId: `appsettings.font`, expanded: true }, - [ - { options: { propertyId: mkfData.IDS.FAMILY } }, - { options: { propertyId: mkfData.IDS.COPYRIGHT } }, - { options: { propertyId: mkfData.IDS.DESCRIPTION } }, - { options: { propertyId: mkfData.IDS.URL } }, - { options: { propertyId: mkfData.IDS.PREVIEW_SIZE } }, - ] - ); - - } - - _Foldout(p_foldout, p_controls, p_css = ``, p_host = null) { - - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `item drawer${p_css ? ' ' + p_css : ''}`, p_host || this); - foldout.options = p_foldout; - - if (p_controls) { - let builder = new nkm.datacontrols.helpers.ControlBuilder(this); - builder.options = { host: foldout, cl: mkfWidgets.PropertyControl, css: `foldout-item full` }; - this.forwardData.To(builder); - builder.Build(p_controls); - } - - return foldout; - - } - - //#region Family properties - - //#endregion - - -} - -module.exports = PrefsExplorer; -ui.Register(`mkf-prefs-explorer`, PrefsExplorer); \ No newline at end of file diff --git a/app/js/main-layout.js b/app/js/main-layout.js deleted file mode 100644 index e7fbb8b..0000000 --- a/app/js/main-layout.js +++ /dev/null @@ -1,60 +0,0 @@ -const nkm = require(`@nkmjs/core`); -const u = nkm.u; -const ui = nkm.ui; - -const MainShelf = require(`./main-shelf`); - -const base = ui.views.Layer; -class MainLayout extends base { - constructor() { super(); } - - _Init() { - super._Init(); - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - //'background':`url("${nkm.style.URLImgs(`bg.png`)}")`, - 'background-size':'cover', - '--col-workspace-bg': 'rgba(20,20,20,0.15)' - }, - '.header': { - 'height': `0`//`var(--${ui.FLAGS.SIZE_L})` - }, - '.shelf': { - }, - '.workspace': { - } - }, base._Style()); - } - - _Render() { - - new ui.manipulators.Grid(this, [`max-content`, 0], [`max-content`, 0]); - - // Header - let header = ui.dom.El(`div`, { class: `header` }, this); - new ui.manipulators.GridItem(header, 1, 1, 2, 1); - this.header = header; - - // Side Shelf - let shelf = this.Attach(MainShelf, `shelf`); - shelf.nav.size = ui.FLAGS.SIZE_L; - shelf.nav.defaultWidgetOptions = { - variant: ui.FLAGS.MINIMAL - }; - new ui.manipulators.GridItem(shelf, 1, 2, 1, 1); - this.shelf = shelf; - - // Workspace - let wkspace = this.Attach(nkm.uiworkspace.WorkspaceRoot, `workspace`); - new ui.manipulators.GridItem(wkspace, 2, 2, 1, 1); - this.workspace = wkspace; - - } - -} - -module.exports = MainLayout; -ui.Register(`mkf-main-layout`, MainLayout); \ No newline at end of file diff --git a/app/js/main-shelf.js b/app/js/main-shelf.js deleted file mode 100644 index 3cdfc81..0000000 --- a/app/js/main-shelf.js +++ /dev/null @@ -1,27 +0,0 @@ -const nkm = require(`@nkmjs/core`); -const u = nkm.u; -const ui = nkm.ui; - -const base = nkm.uilib.views.Shelf; -class MainShelf extends base { - constructor() { super(); } - - //static __default_navPlacement = ui.FLAGS.RIGHT; - - _Init() { - super._Init(); - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - - }, - }, base._Style()); - } - - -} - -module.exports = MainShelf; -ui.Register(`mkf-main-shelf`, MainShelf); \ No newline at end of file diff --git a/app/js/main.js b/app/js/main.js index 30ed39e..53bc1a5 100644 --- a/app/js/main.js +++ b/app/js/main.js @@ -30,47 +30,21 @@ class MKFont extends nkm.app.AppBase { _Init() { super._Init(); + this._appSettingsType = mkfData.AppSettings; + this._layers = [ - { id: `mainLayout`, cl: require(`./main-layout`) } + { id: `mainLayout`, cl: nkm.uiworkspace.WorkspaceRoot } ]; + + this._MKFontDocDefinition = this._RegisterDocDefinition( + { name: `MKFONT Files`, extensions: [`mkfont`] }, + { dataType: mkfData.Family, docType:nkm.documents.bound.JSONDocument }, + mkfEditors.FontEditor + ); + this._MKFontDocDefinition.bumpOnly = true; - nkm.documents.DOCUMENTS.Watch(nkm.data.SIGNAL.NO_ACTIVE_EDITOR, this._OnDocDataRoaming, this); - - this._prefDataObject = com.Rent(mkfData.Prefs); - this._prefDataObject - .Watch(mkfData.IDS_PREFS.AUTOSAVE, () => { - nkm.documents.ToggleAutoSave(nkm.env.APP.PGet(mkfData.IDS_PREFS.AUTOSAVE)); - }) - .Watch(mkfData.IDS_PREFS.AUTOSAVE_TIMER, () => { - nkm.documents.ToggleAutoSave( - nkm.env.APP.PGet(mkfData.IDS_PREFS.AUTOSAVE), - nkm.env.APP.PGet(mkfData.IDS_PREFS.AUTOSAVE_TIMER) * 1000 * 60); - }) - - this._defaultUserPreferences = { - 'mkf:prefs': JSON.stringify(nkm.data.serialization.JSONSerializer.Serialize(this._prefDataObject)) - }; - - } - - _OnPrefsObjectUpdated(p_data) { - //TODO : Stringify and set to prefs - let json = nkm.data.serialization.JSONSerializer.Serialize(this._prefDataObject); - this._userPreferences.Set(`mkf:prefs`, JSON.stringify(json)); - } - - _OnAppReadyInternal(p_data) { - - nkm.data.serialization.JSONSerializer.Deserialize(JSON.parse(p_data.Get(`mkf:prefs`)), this._prefDataObject); - this._prefDataObject.Watch(com.SIGNAL.UPDATED, this._OnPrefsObjectUpdated, this); - - super._OnAppReadyInternal(p_data); } - get mkfPrefs() { return this._prefDataObject; } - PGet(p_id, p_fallback = null, p_fallbackIfNullValue = false) { return this._prefDataObject.Get(p_id, p_fallback, p_fallbackIfNullValue); } - PSet(p_id, p_value, p_silent = false) { return this._prefDataObject.Set(p_id, p_value, p_silent); } - AppReady() { /* ui.Preload(mkfWidgets.GlyphSlot, 50); @@ -96,25 +70,7 @@ class MKFont extends nkm.app.AppBase { for (var p in cols) { nkm.style.Set(`--col-${p}`, cols[p]); } - this._mainCatalog = nkm.data.catalogs.CreateFrom({ - [com.IDS.NAME]: `MKF` - }, [ - { - [com.IDS.NAME]: `Main`, - [com.IDS.ICON]: `view-list`, - [ui.IDS.VIEW_CLASS]: mkfExplorers.MainExplorer - } - ]); - - - let mainShelf = this.mainLayout.shelf; - mainShelf.catalog = this._mainCatalog; - mainShelf.RequestView(0); - - mainShelf.visible = false; - - - this._welcomeView = this.mainLayout.workspace.Host({ + this._welcomeView = this.mainLayout.Host({ [ui.IDS.VIEW_CLASS]: mkfViews.Welcome, [ui.IDS.NAME]: `Home`, [ui.IDS.ICON]: `gear`, @@ -123,19 +79,10 @@ class MKFont extends nkm.app.AppBase { nkm.style.Set(`--glyph-color`, `#f5f5f5`); - let openPath = null; - // Check if ARGV contains an .mkfont file path - searchloop: for (var p in nkm.env.ARGV) { - if (p.includes(`.mkfont`)) { - openPath = p; - break searchloop; - } - } - - this.mainLayout.workspace._cells.ForEach((cell) => { cell._nav._cellOptionsBtn.trigger = { fn: () => { mkfCmds.OpenPrefs.Execute(); } } }); + console.log(this.mainLayout._cells); + this.mainLayout._cells.forEach((cell) => { cell._nav._cellOptionsBtn.trigger = { fn: () => { mkfCmds.OpenPrefs.Execute(); } } }); this._welcomeView._options.view.RequestDisplay(); - this._OnOpenPathRequest(openPath); //this._EmptyFamily(); //this._FamilyFromTTF(); @@ -143,28 +90,6 @@ class MKFont extends nkm.app.AppBase { } - _OnOpenPathRequest(p_path) { - - console.log(`_OnOpenPathRequest -> `, p_path); - if (p_path == null || nkm.u.isVoid(p_path)) { return; } - - if (nkm.u.isArray(p_path)) { - let finalPath = null; - p_path.forEach((item) => { if (item.includes(`.mkfont`)) { finalPath = item; } }); - if (!finalPath) { return; } - p_path = finalPath; - } - - if (!p_path.includes(`.mkfont`)) { return; } - - mkfCmds.LoadFamilyDoc.Execute(p_path); - - } - - _OnDocDataRoaming(p_document) { - mkfCmds.ReleaseFamilyDoc.Execute(p_document.currentData); - } - _EmptyFamily() { mkfCmds.CreateFamilyDoc.Execute(); @@ -175,15 +100,15 @@ class MKFont extends nkm.app.AppBase { let family = mkfData.TTF.FamilyFromTTF(fs.readFileSync(`./assets-dev/ttfs/${__fontName}.ttf`)); - let gCount = family._glyphs.count; - family._glyphs.ForEach(glyph => { + let gCount = family._glyphs.length; + family._glyphs.forEach(glyph => { for (let i = 0; i < 5; i++) { if (Math.random() > 0.2) { continue; } let newLayer = nkm.com.Rent(mkfData.GlyphLayer), - g = family._glyphs.At(Math.round(Math.random() * (gCount - 1))); + g = family._glyphs[Math.round(Math.random() * (gCount - 1))]; glyph.activeVariant.AddLayer(newLayer); newLayer.expanded = false; @@ -203,10 +128,10 @@ class MKFont extends nkm.app.AppBase { fontEditor.RequestDisplay(); fontEditor.data = this._tempFontData; - let outputStr = JSON.stringify(nkm.data.serialization.JSONSerializer.Serialize(this._tempFontData)); + let outputStr = JSON.stringify(nkm.data.s11n.JSONSerializer.Serialize(this._tempFontData)); //console.log(JSON.parse(outputStr)); - this._anotherFamily = nkm.data.serialization.JSONSerializer.Deserialize(JSON.parse(outputStr)); + this._anotherFamily = nkm.data.s11n.JSONSerializer.Deserialize(JSON.parse(outputStr)); //console.log(this._anotherFamily); } diff --git a/app/js/operations/actions/action-set-ascent.js b/app/js/operations/actions/action-set-ascent.js index 0e8a2b9..b17216c 100644 --- a/app/js/operations/actions/action-set-ascent.js +++ b/app/js/operations/actions/action-set-ascent.js @@ -2,18 +2,13 @@ // Set svg property of a given char in a given glyph const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; const mkfData = require(`../../data`); -const svgpath = require('svgpath'); - -const ActionSetPropertyValue = require(`./action-set-property-value`); - const familyIDs = [ mkfData.IDS.X_HEIGHT, mkfData.IDS.CAP_HEIGHT, ]; -class ActionSetAscent extends ActionSetPropertyValue { +class ActionSetAscent extends nkm.data.ops.actions.SetPropertyValue { constructor() { super(); } // Expected operation format : { target:SimpleDataBlock, id:`ID`, value:*, resample:bool } diff --git a/app/js/operations/actions/action-set-em.js b/app/js/operations/actions/action-set-em.js index 745e2e2..6bd21d4 100644 --- a/app/js/operations/actions/action-set-em.js +++ b/app/js/operations/actions/action-set-em.js @@ -2,16 +2,9 @@ // Set svg property of a given char in a given glyph const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; const mkfData = require(`../../data`); -const svgpath = require('svgpath'); -const ActionSetPropertyValue = require(`./action-set-property-value`); - - - - -class ActionSetEM extends ActionSetPropertyValue { +class ActionSetEM extends nkm.data.ops.actions.SetPropertyValue { constructor() { super(); } // Expected operation format : { target:SimpleDataBlock, id:`ID`, value:*, resample:bool } @@ -42,8 +35,8 @@ class ActionSetEM extends ActionSetPropertyValue { //family.CommitUpdate(); //family._transformSettings.CommitUpdate(); - family._glyphs._array.forEach(glyph => { - glyph._variants.ForEach((variant) => { + family._glyphs.forEach(glyph => { + glyph._variants.forEach((variant) => { // Glyph values @@ -66,7 +59,7 @@ class ActionSetEM extends ActionSetPropertyValue { //mkfData.UTILS.ResampleValues(variant._transformSettings._values, mkfData.IDS.TR_RESAMPLE_IDS, scaleFactor, true); // Layers transforms - variant._layers.ForEach(layer => { + variant._layers.forEach(layer => { layer.BatchSet(mkfData.UTILS.Resample( layer.Values(mkfData.IDS.LYR_RESAMPLE_IDS), diff --git a/app/js/operations/actions/action-set-layer-control.js b/app/js/operations/actions/action-set-layer-control.js index a42d1bb..7e56ffd 100644 --- a/app/js/operations/actions/action-set-layer-control.js +++ b/app/js/operations/actions/action-set-layer-control.js @@ -2,18 +2,8 @@ // Set svg property of a given char in a given glyph const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const mkfData = require(`../../data`); -const svgpath = require('svgpath'); -const ActionSetPropertyValue = require(`./action-set-property-value`); - -const familyIDs = [ - mkfData.IDS.X_HEIGHT, - mkfData.IDS.CAP_HEIGHT, -]; - -class ActionSetLayerControl extends ActionSetPropertyValue { +class ActionSetLayerControl extends nkm.data.ops.actions.SetPropertyValue { constructor() { super(); } _InternalDo(p_operation, p_merge = false) { diff --git a/app/js/operations/actions/action-set-layer-index.js b/app/js/operations/actions/action-set-layer-index.js index 5644ed8..29d0ff1 100644 --- a/app/js/operations/actions/action-set-layer-index.js +++ b/app/js/operations/actions/action-set-layer-index.js @@ -2,21 +2,10 @@ // Set svg property of a given char in a given glyph const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const mkfData = require(`../../data`); -const svgpath = require('svgpath'); -const ActionSetPropertyValue = require(`./action-set-property-value`); - -const familyIDs = [ - mkfData.IDS.X_HEIGHT, - mkfData.IDS.CAP_HEIGHT, -]; - -class ActionSetLayerIndex extends ActionSetPropertyValue { +class ActionSetLayerIndex extends nkm.data.ops.actions.SetPropertyValue { constructor() { super(); } - _UpdateValue(p_target, p_new, p_old) { p_target._variant.MoveLayer(p_target, p_new); } diff --git a/app/js/operations/actions/action-set-property-value-multiple.js b/app/js/operations/actions/action-set-property-value-multiple.js deleted file mode 100644 index af34fec..0000000 --- a/app/js/operations/actions/action-set-property-value-multiple.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict' - -// Set svg property of a given char in a given glyph -const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const data = require(`../../data`); - -class ActionSetPropertyValueMultiple extends actions.Action { - constructor() { super(); } - - // Expected operation format : { target:SimpleDataBlock, values:{ id:* } } - - _InternalDo(p_operation, p_merge = false) { - - let - target = p_operation.target, - values = p_operation.values, - oldValues = target.Values(values); - - p_operation.oldValues = oldValues; - target.BatchSet(values); - this._UpdateValues(target, values, oldValues); - target.CommitUpdate(); - - - - } - - _UpdateDisplayInfos(){ - this.displayInfos = { - name: `Set multiple values`, - title: `Setting multiples values on ${this._operation.target}'s` - }; - } - - _UpdateValues(p_target, p_from, p_to) { - - } - - _InternalUndo() { - - let - target = this._operation.target, - oldValues = this._operation.oldValues, - newValues = this._operation.values; - - target.BatchSet(oldValues, true); - this._UpdateValues(target, oldValues, newValues); - target.CommitUpdate(); - } - - _InternalRedo() { - - let - target = this._operation.target, - oldValues = this._operation.oldValues, - newValues = this._operation.values; - - target.BatchSet(newValues, true); - this._UpdateValues(target, newValues, oldValues); - target.CommitUpdate(); - - } - -} - -module.exports = ActionSetPropertyValueMultiple; \ No newline at end of file diff --git a/app/js/operations/actions/action-set-property-value.js b/app/js/operations/actions/action-set-property-value.js deleted file mode 100644 index 9d46806..0000000 --- a/app/js/operations/actions/action-set-property-value.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict' - -// Set svg property of a given char in a given glyph -const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const mkfData = require(`../../data`); - -class ActionSetPropertyValue extends actions.Action { - constructor() { super(); } - - - static get mergeable() { return true; } - - CanMerge(p_operation) { - //Also check if operation target is array, this mean it's a group op - return (this._operation.target == p_operation.target && this._operation.id == p_operation.id); - } - - // Expected operation format : { target:SimpleDataBlock, id:`ID`, value:* } - - _InternalDo(p_operation, p_merge = false) { - - let - target = p_operation.target, - propertyId = p_operation.id, - oldValue, - newValue = p_operation.value; - - if (nkm.u.isArray(target)) { - oldValue = []; - for (let i = 0; i < target.length; i++) { oldValue.push(target[i].Get(propertyId)); } - } else { - oldValue = target.Get(propertyId); - } - - if (!p_merge) { p_operation.oldValue = oldValue; } - else { this._operation.value = newValue; } - - if (nkm.u.isArray(target)) { - for (let i = 0; i < target.length; i++) { - let tgt = target[i]; - tgt.Set(propertyId, newValue, true); - this._UpdateValue(tgt, newValue, oldValue[i]); - tgt.CommitUpdate(); - } - } else { - target.Set(propertyId, newValue, true); - this._UpdateValue(target, newValue, oldValue); - target.CommitUpdate(); - } - } - - _UpdateDisplayInfos() { - - let - pInfos = mkfData.INFOS.Get(this._operation.id), - label = pInfos ? pInfos.label : this._operation.id; - - this.displayInfos = { - name: `Set ${label}`, - title: `${nkm.u.isArray(this._operation.target) ? 'Multiple' : this._operation.target + `'s`} ${label}\n` + - `from : ${nkm.u.isArray(this._operation.oldValue) ? 'Multiple' : this._operation.oldValue}\n` + - `to: ${this._operation.value}` - }; - } - - _UpdateValue(p_target, p_new, p_old) { } - - _InternalUndo() { - let - target = this._operation.target, - oldValue = this._operation.oldValue, - newValue = this._operation.value; - - if (nkm.u.isArray(target)) { - for (let i = 0; i < target.length; i++) { - let tgt = target[i]; - tgt.Set(this._operation.id, oldValue[i], true); - this._UpdateValue(tgt, oldValue[i], newValue); - tgt.CommitUpdate(); - } - } else { - target.Set(this._operation.id, oldValue, true); - this._UpdateValue(target, oldValue, newValue); - target.CommitUpdate(); - } - - } - - _InternalRedo() { - - let - target = this._operation.target, - oldValue = this._operation.oldValue, - newValue = this._operation.value; - - if (nkm.u.isArray(target)) { - for (let i = 0; i < target.length; i++) { - let tgt = target[i]; - tgt.Set(this._operation.id, newValue, true); - this._UpdateValue(tgt, newValue, oldValue[i]); - tgt.CommitUpdate(); - } - } else { - target.Set(this._operation.id, newValue, true); - this._UpdateValue(target, newValue, oldValue); - target.CommitUpdate(); - } - - } - -} - -module.exports = ActionSetPropertyValue; \ No newline at end of file diff --git a/app/js/operations/actions/index.js b/app/js/operations/actions/index.js index aa6663d..26d04f2 100644 --- a/app/js/operations/actions/index.js +++ b/app/js/operations/actions/index.js @@ -1,9 +1,8 @@ 'use strict'; +const nkm = require(`@nkmjs/core`); module.exports = { - SetProperty: require(`./action-set-property-value`), - SetPropertyMultiple: require(`./action-set-property-value-multiple`), SetAscent: require(`./action-set-ascent`), SetEM: require(`./action-set-em`), SetLayerIndex: require(`./action-set-layer-index`), @@ -13,4 +12,7 @@ module.exports = { LayerAdd: require(`./action-layer-add`), LayerRemove: require(`./action-layer-remove`), + SetProperty: nkm.data.ops.actions.SetPropertyValue, + SetPropertyMultiple: nkm.data.ops.actions.SetPropertyMultiple, + } \ No newline at end of file diff --git a/app/js/operations/commands/cmd-action-set-ascent.js b/app/js/operations/commands/cmd-action-set-ascent.js index acb9625..3199000 100644 --- a/app/js/operations/commands/cmd-action-set-ascent.js +++ b/app/js/operations/commands/cmd-action-set-ascent.js @@ -2,13 +2,11 @@ // Read svg from clipboard and trigger "action-set-svg" const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; const IDS = require(`../../data/ids`); -const CmdActionProperty = require(`./cmd-action-set-property`); const SetAscent = require(`../actions/action-set-ascent`); -class CmdActionSetEM extends CmdActionProperty { +class CmdActionSetEM extends nkm.data.ops.commands.CmdActionSetProperty { constructor() { super(); } _Init() { diff --git a/app/js/operations/commands/cmd-action-set-control.js b/app/js/operations/commands/cmd-action-set-control.js index 86e683e..74556b7 100644 --- a/app/js/operations/commands/cmd-action-set-control.js +++ b/app/js/operations/commands/cmd-action-set-control.js @@ -2,13 +2,9 @@ // Read svg from clipboard and trigger "action-set-svg" const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const IDS = require(`../../data/ids`); - -const CmdActionProperty = require(`./cmd-action-set-property`); const SetLayerControl = require(`../actions/action-set-layer-control`); -class CmdActionSetControl extends CmdActionProperty { +class CmdActionSetControl extends nkm.data.ops.commands.CmdActionSetProperty { constructor() { super(); } _Init() { diff --git a/app/js/operations/commands/cmd-action-set-em.js b/app/js/operations/commands/cmd-action-set-em.js index 884b44c..9579ba3 100644 --- a/app/js/operations/commands/cmd-action-set-em.js +++ b/app/js/operations/commands/cmd-action-set-em.js @@ -2,13 +2,11 @@ // Read svg from clipboard and trigger "action-set-svg" const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; const IDS = require(`../../data/ids`); -const CmdActionProperty = require(`./cmd-action-set-property`); const SetEM = require(`../actions/action-set-em`); -class CmdActionSetEM extends CmdActionProperty { +class CmdActionSetEM extends nkm.data.ops.commands.CmdActionSetProperty { constructor() { super(); } _Init() { diff --git a/app/js/operations/commands/cmd-action-set-property.js b/app/js/operations/commands/cmd-action-set-property.js deleted file mode 100644 index 8d11da9..0000000 --- a/app/js/operations/commands/cmd-action-set-property.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -// Read svg from clipboard and trigger "action-set-svg" -const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; - -const { clipboard } = require('electron'); - -const SetPropertyValue = require(`../actions/action-set-property-value`); - -class CmdActionProperty extends actions.CommandAction { - constructor() { super(); } - - _Init() { - super._Init(); - this._inputValue = null; - this._actionClass = SetPropertyValue; // Action - } - - set inputValue(p_value) { this._inputValue = p_value; } - get inputValue() { return this._inputValue; } - - _FetchContext() { - return { - id: this._emitter.propertyId, - target: this._emitter.data, - value: this._inputValue - }; - } - -} - -module.exports = CmdActionProperty; diff --git a/app/js/operations/commands/cmd-edit-in-external-editor.js b/app/js/operations/commands/cmd-edit-in-external-editor.js index d69e143..42027c6 100644 --- a/app/js/operations/commands/cmd-edit-in-external-editor.js +++ b/app/js/operations/commands/cmd-edit-in-external-editor.js @@ -59,7 +59,7 @@ class CmdEditInPlace extends actions.Command { _Kickstart() { let - defaultEditorPath = nkm.env.APP.PGet(mkfData.IDS_PREFS.SVG_EDITOR_PATH); + defaultEditorPath = nkm.settings.Get(mkfData.IDS_PREFS.SVG_EDITOR_PATH); try { let stats = fs.statSync(defaultEditorPath[0]); @@ -132,8 +132,7 @@ class CmdEditInPlace extends actions.Command { } _OnWriteFail(p_err) { - this._tmpRsc.Flush(); - this._Fail(p_err); + //Ewwww } _OnPicked(p_response) { @@ -144,7 +143,7 @@ class CmdEditInPlace extends actions.Command { } let filePath = p_response.filePaths[0]; - nkm.env.APP.PSet(mkfData.IDS_PREFS.SVG_EDITOR_PATH, [filePath]); + nkm.settings.Set(mkfData.IDS_PREFS.SVG_EDITOR_PATH, [filePath]); this._Kickstart(); @@ -153,7 +152,7 @@ class CmdEditInPlace extends actions.Command { _Launch() { let - defaultEditorPath = nkm.env.APP.PGet(mkfData.IDS_PREFS.SVG_EDITOR_PATH); + defaultEditorPath = nkm.settings.Get(mkfData.IDS_PREFS.SVG_EDITOR_PATH); nkmElectron.io.LaunchExternalEditor(defaultEditorPath[0], this._tmpRsc.path); this._tmpRsc.Enable(); diff --git a/app/js/operations/commands/cmd-export-list-artboard-template.js b/app/js/operations/commands/cmd-export-list-artboard-template.js index 6120619..2e93797 100644 --- a/app/js/operations/commands/cmd-export-list-artboard-template.js +++ b/app/js/operations/commands/cmd-export-list-artboard-template.js @@ -48,7 +48,7 @@ class CmdExportListArtboartTemplate extends CmdListProcessor { _Kickstart() { let - illuAppPath = nkm.env.APP.PGet(mkfData.IDS_PREFS.ILLU_PATH); + illuAppPath = nkm.settings.Get(mkfData.IDS_PREFS.ILLU_PATH); try { let stats = fs.statSync(illuAppPath[0]); @@ -123,7 +123,7 @@ class CmdExportListArtboartTemplate extends CmdListProcessor { } let filePath = p_response.filePaths[0]; - nkm.env.APP.PSet(mkfData.IDS_PREFS.ILLU_PATH, [filePath]); + nkm.settings.Set(mkfData.IDS_PREFS.ILLU_PATH, [filePath]); this._Kickstart(); @@ -132,7 +132,7 @@ class CmdExportListArtboartTemplate extends CmdListProcessor { _Launch() { let - illuAppPath = nkm.env.APP.PGet(mkfData.IDS_PREFS.ILLU_PATH); + illuAppPath = nkm.settings.Get(mkfData.IDS_PREFS.ILLU_PATH); nkmElectron.io.LaunchExternalEditor(illuAppPath[0], this._tmpRsc.path); this._tmpRsc.Enable(); diff --git a/app/js/operations/commands/cmd-export-ttf.js b/app/js/operations/commands/cmd-export-ttf.js index 1760ef2..b8c0da9 100644 --- a/app/js/operations/commands/cmd-export-ttf.js +++ b/app/js/operations/commands/cmd-export-ttf.js @@ -20,7 +20,7 @@ class CmdExportTTF extends actions.Command { _InternalExecute() { - if (this._context._glyphs.count == 0) { + if (this._context._glyphs.length == 0) { this._Fail(`There is no glyph to export.`); return; } diff --git a/app/js/operations/commands/cmd-glyph-clear.js b/app/js/operations/commands/cmd-glyph-clear.js index db49cb0..3c6c908 100644 --- a/app/js/operations/commands/cmd-glyph-clear.js +++ b/app/js/operations/commands/cmd-glyph-clear.js @@ -4,10 +4,6 @@ const nkm = require(`@nkmjs/core`); const actions = nkm.actions; const u = nkm.u; -const { clipboard } = require('electron'); -const fs = require('fs'); - -const UNICODE = require(`../../unicode`); const mkfData = require(`../../data`); const mkfActions = require(`../actions`); const SHARED_OPS = require('./shared-ops'); @@ -59,7 +55,7 @@ class CmdGlyphClear extends actions.Command { if (glyph.isNull) { - if (!p_inGroup && (nkm.ui.INPUT.alt || nkm.ui.INPUT.shift)) { + if (!p_inGroup && (nkm.ui.INPUT.altKey || nkm.ui.INPUT.shiftKey)) { this._emitter.StartActionGroup({ icon: `reset`, name: `Reset glyph`, @@ -69,11 +65,11 @@ class CmdGlyphClear extends actions.Command { SHARED_OPS.CreateEmptyGlyph(this._emitter, f, p_infos); - if (nkm.ui.INPUT.shift) { - SHARED_OPS.BoostrapComp(this._emitter, f.GetGlyph(p_infos.u).activeVariant, p_infos, true, nkm.ui.INPUT.alt); + if (nkm.ui.INPUT.shiftKey) { + SHARED_OPS.BoostrapComp(this._emitter, f.GetGlyph(p_infos.u).activeVariant, p_infos, true, nkm.ui.INPUT.altKey); } - if (!p_inGroup && (nkm.ui.INPUT.alt || nkm.ui.INPUT.shift)) { this._emitter.EndActionGroup(); } + if (!p_inGroup && (nkm.ui.INPUT.altKey || nkm.ui.INPUT.shiftKey)) { this._emitter.EndActionGroup(); } } else { @@ -99,9 +95,9 @@ class CmdGlyphClear extends actions.Command { value: false }); - if (!nkm.ui.INPUT.alt) { SHARED_OPS.RemoveLayers(this._emitter, p_variant); } + if (!nkm.ui.INPUT.altKey) { SHARED_OPS.RemoveLayers(this._emitter, p_variant); } - if (nkm.ui.INPUT.shift) { SHARED_OPS.BoostrapComp(this._emitter, p_variant, p_infos, true, nkm.ui.INPUT.alt); } + if (nkm.ui.INPUT.shiftKey) { SHARED_OPS.BoostrapComp(this._emitter, p_variant, p_infos, true, nkm.ui.INPUT.altKey); } if (!p_inGroup) { this._emitter.EndActionGroup(); } diff --git a/app/js/operations/commands/cmd-glyph-copy.js b/app/js/operations/commands/cmd-glyph-copy.js index f4a9696..d97ae06 100644 --- a/app/js/operations/commands/cmd-glyph-copy.js +++ b/app/js/operations/commands/cmd-glyph-copy.js @@ -17,7 +17,6 @@ class CmdGlyphCopy extends actions.Command { constructor() { super(); } _InternalExecute() { - SHARED_OPS.CopyFrom(this._emitter); this._Success(); diff --git a/app/js/operations/commands/cmd-glyph-delete.js b/app/js/operations/commands/cmd-glyph-delete.js index 4cdcad9..822e622 100644 --- a/app/js/operations/commands/cmd-glyph-delete.js +++ b/app/js/operations/commands/cmd-glyph-delete.js @@ -35,7 +35,7 @@ class CmdGlyphDelete extends actions.Command { let list; if (u.isArray(this._context)) { list = this._context; } - else { list = this._emitter.inspectedData.stack._array; } + else { list = this._emitter.inspectedData.stack; } // Delete a selection of glyphs diff --git a/app/js/operations/commands/cmd-glyph-paste.js b/app/js/operations/commands/cmd-glyph-paste.js index 629fa01..ab49b34 100644 --- a/app/js/operations/commands/cmd-glyph-paste.js +++ b/app/js/operations/commands/cmd-glyph-paste.js @@ -24,7 +24,7 @@ class CmdGlyphPaste extends actions.Command { _InternalExecute() { let svgString = clipboard.readText(); - + if (svgString == SHARED_OPS.copiedString) { // Clipboard still have the same reference string : pasting from inside MkFont diff --git a/app/js/operations/commands/cmd-import-file-list.js b/app/js/operations/commands/cmd-import-file-list.js index 3771444..38e851e 100644 --- a/app/js/operations/commands/cmd-import-file-list.js +++ b/app/js/operations/commands/cmd-import-file-list.js @@ -122,7 +122,7 @@ class CmdImportFileList extends actions.Command { if (!this._importEditor) { this._importEditor = nkm.ui.UI.Rent(`mkf-list-import-editor`); } // TODO - // this._importTransformationSettings.Set(IDS_EXT.IMPORT_BLOCK, UNICODE.instance._blockCatalog.At(0) ); + // this._importTransformationSettings.Set(IDS_EXT.IMPORT_BLOCK, UNICODE._blockCatalog.At(0) ); this._importEditor.family = family; this._importEditor._importList = this._importList; diff --git a/app/js/operations/commands/cmd-import-file-single.js b/app/js/operations/commands/cmd-import-file-single.js index 8f69c74..0789206 100644 --- a/app/js/operations/commands/cmd-import-file-single.js +++ b/app/js/operations/commands/cmd-import-file-single.js @@ -102,7 +102,7 @@ class CmdImportFileSingle extends actions.Command { let family = this._emitter.data, - doBinding = nkm.env.APP.PGet(mkfData.IDS_EXT.IMPORT_BIND_RESOURCE) + doBinding = nkm.settings.Get(mkfData.IDS_EXT.IMPORT_BIND_RESOURCE) // Check if glyph exists let diff --git a/app/js/operations/commands/cmd-layer-add-comp.js b/app/js/operations/commands/cmd-layer-add-comp.js index d38036d..fbbf523 100644 --- a/app/js/operations/commands/cmd-layer-add-comp.js +++ b/app/js/operations/commands/cmd-layer-add-comp.js @@ -24,8 +24,8 @@ class CmdLayerAddComp extends actions.Command { let unicodeInfos, - createMissing = !nkm.ui.INPUT.alt, - createRecursive = nkm.ui.INPUT.shift; + createMissing = !nkm.ui.INPUT.altKey, + createRecursive = nkm.ui.INPUT.shiftKey; if (u.isArray(this._context)) { diff --git a/app/js/operations/commands/cmd-layer-move-up.js b/app/js/operations/commands/cmd-layer-move-up.js index c81bcb0..2f3bcb9 100644 --- a/app/js/operations/commands/cmd-layer-move-up.js +++ b/app/js/operations/commands/cmd-layer-move-up.js @@ -27,7 +27,7 @@ class CmdLayerMoveUp extends actions.Command { let validMoves = []; this._context.forEach(layer => { let targetIndex = layer.index + 1; - if (targetIndex >= layer._variant._layers.count) { return; } + if (targetIndex >= layer._variant._layers.length) { return; } validMoves.push({ target: layer, id: IDS.LYR_INDEX, value: targetIndex }); }); @@ -51,7 +51,7 @@ class CmdLayerMoveUp extends actions.Command { } else { let targetIndex = this._context.index + 1; - if (targetIndex >= this._context._variant._layers.count) { + if (targetIndex >= this._context._variant._layers.length) { this._Cancel(); return; } diff --git a/app/js/operations/commands/cmd-layers-all-off.js b/app/js/operations/commands/cmd-layers-all-off.js index e147cc6..5d188c0 100644 --- a/app/js/operations/commands/cmd-layers-all-off.js +++ b/app/js/operations/commands/cmd-layers-all-off.js @@ -32,7 +32,7 @@ class CmdLayersOff extends actions.Command { this._context.forEach((variant) => { let - layerList = variant.layers._array, + layerList = variant.layers, ignore = true; layerList.forEach(element => { if (element.Get(mkfData.IDS.DO_EXPORT)) { ignore = false; } }); @@ -53,7 +53,7 @@ class CmdLayersOff extends actions.Command { let variant = this._context, - layerList = variant.layers._array, + layerList = variant.layers, ignore = true; layerList.forEach(element => { if (element.Get(mkfData.IDS.DO_EXPORT)) { ignore = false; } }); diff --git a/app/js/operations/commands/cmd-layers-all-on.js b/app/js/operations/commands/cmd-layers-all-on.js index 85a7518..bc90c96 100644 --- a/app/js/operations/commands/cmd-layers-all-on.js +++ b/app/js/operations/commands/cmd-layers-all-on.js @@ -26,7 +26,7 @@ class CmdLayersOn extends actions.Command { this._context.forEach(variant => { let - layerList = variant.layers._array, + layerList = variant.layers, ignore = true; layerList.forEach(element => { if (!element.Get(mkfData.IDS.DO_EXPORT)) { ignore = false; } }); @@ -52,7 +52,7 @@ class CmdLayersOn extends actions.Command { } else { let variant = this._context, - layerList = variant.layers._array, + layerList = variant.layers, ignore = true; layerList.forEach(element => { if (!element.Get(mkfData.IDS.DO_EXPORT)) { ignore = false; } }); diff --git a/app/js/operations/commands/cmd-layers-paste.js b/app/js/operations/commands/cmd-layers-paste.js index d4d9794..bc3fe81 100644 --- a/app/js/operations/commands/cmd-layers-paste.js +++ b/app/js/operations/commands/cmd-layers-paste.js @@ -30,7 +30,7 @@ class CmdLayersPaste extends actions.Command { callback = null, groupInfos = null; - if (nkm.ui.INPUT.alt) { + if (nkm.ui.INPUT.altKey) { groupInfos = { icon: `clipboard-read`, @@ -40,7 +40,7 @@ class CmdLayersPaste extends actions.Command { callback = this._PasteTransforms; - } else if (!nkm.ui.INPUT.shift) { + } else if (!nkm.ui.INPUT.shiftKey) { groupInfos = { icon: `clipboard-read`, diff --git a/app/js/operations/commands/cmd-ligature-from-selection.js b/app/js/operations/commands/cmd-ligature-from-selection.js index 64b5f26..00e89f9 100644 --- a/app/js/operations/commands/cmd-ligature-from-selection.js +++ b/app/js/operations/commands/cmd-ligature-from-selection.js @@ -20,7 +20,7 @@ class CmdLigatureFromSelection extends actions.Command { } _GetLigaName() { - let selection = this._emitter.inspectedData.stack._array, + let selection = this._emitter.inspectedData.stack, uniStruct = ``; selection.forEach(sel => { uniStruct += sel.char; }); return uniStruct == `` ? null : uniStruct; @@ -46,7 +46,7 @@ class CmdLigatureFromSelection extends actions.Command { } else { - selection = [...this._emitter.inspectedData.stack._array]; + selection = [...this._emitter.inspectedData.stack]; if (selection.length < 2) { return this._Cancel(); } @@ -66,7 +66,7 @@ class CmdLigatureFromSelection extends actions.Command { return this._Cancel(); } - let addComponents = nkm.ui.INPUT.shift; + let addComponents = nkm.ui.INPUT.shiftKey; if (addComponents) { this._emitter.StartActionGroup({ @@ -107,7 +107,7 @@ class CmdLigatureFromSelection extends actions.Command { } }); - glyph.activeVariant._layers.ForEach((lyr, i) => { + glyph.activeVariant._layers.forEach((lyr, i) => { let params = { [mkfData.IDS.TR_BOUNDS_MODE]: mkfData.ENUMS.BOUNDS_OUTSIDE, diff --git a/app/js/operations/commands/cmd-list-processor.js b/app/js/operations/commands/cmd-list-processor.js index e6ce0b6..2b15df8 100644 --- a/app/js/operations/commands/cmd-list-processor.js +++ b/app/js/operations/commands/cmd-list-processor.js @@ -19,7 +19,7 @@ class CmdListProcessor extends actions.Command { this._results.length = 0; - let content = u.isArray(this._context) ? this._context : this._emitter.inspectedData.stack._array; + let content = u.isArray(this._context) ? this._context : this._emitter.inspectedData.stack; for (let i = 0, n = content.length; i < n; i++) { this._PushInfos(content[i]); } return this._results; diff --git a/app/js/operations/commands/cmd-open-prefs.js b/app/js/operations/commands/cmd-open-prefs.js deleted file mode 100644 index 198a04a..0000000 --- a/app/js/operations/commands/cmd-open-prefs.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -const nkm = require(`@nkmjs/core`); -const actions = nkm.actions; -const ui = nkm.ui; -const u = nkm.u; - -const UNICODE = require(`../../unicode`); -const mkfData = require(`../../data`); -const mkfActions = require(`../actions`); - -class CmdOpenPrefs extends actions.Command { - constructor() { super(); } - - static __displayName = `App settings`; - static __displayIcon = `gear`; - - _Init() { - super._Init(); - } - - _InternalExecute() { - - let opts = { - orientation: ui.FLAGS.HORIZONTAL, - placement: ui.FLAGS.LEFT, - title: `App settings`, - data: nkm.env.APP._prefDataObject, - contentClass: nkm.ui.UI.GetClass(`mkf-prefs-explorer`) - }; - - nkm.actions.Emit(nkm.uilib.REQUEST.DRAWER, opts, this); - - this._Success(); - - } - -} - -module.exports = CmdOpenPrefs; \ No newline at end of file diff --git a/app/js/operations/commands/index.js b/app/js/operations/commands/index.js index 806f06b..6fa78c0 100644 --- a/app/js/operations/commands/index.js +++ b/app/js/operations/commands/index.js @@ -4,22 +4,9 @@ const docCmds = nkm.documents.commands; const mkfData = require(`../../data`); -const - fileInfos = { name: 'MKFont files', extensions: ['mkfont'] }, - mkDocInfos = { docType: nkm.documents.bound.JSONDocument, dataType: mkfData.Family, fileInfos: fileInfos }; - -// Register defaults commands (will be used by autosave) -docCmds.DocumentCreate.Rent(mkDocInfos, true); -docCmds.DocumentSave.Rent(mkDocInfos, true); -docCmds.DocumentLoad.Rent(mkDocInfos, true); -docCmds.DocumentRelease.Rent(mkDocInfos, true); - module.exports = { - OpenPrefs: new (require(`./cmd-open-prefs`))(), - - //Single instances are to be used with PropertyControl - SetProperty: new (require(`./cmd-action-set-property`))(), //Single instance + //Single instances are to be used with ValueControl SetEM: new (require(`./cmd-action-set-em`))(), //Single instance SetAscent: new (require(`./cmd-action-set-ascent`))(), //Single instance SetLayerControl: new (require(`./cmd-action-set-control`))(), //Single instance @@ -62,10 +49,5 @@ module.exports = { StartNewFromTTF: require(`./cmd-start-new-from-ttf`), StartNewFromSVGS: require(`./cmd-start-new-from-svgs`), - get CreateFamilyDoc() { return docCmds.DocumentCreate.Rent({ name: `New .mkfont`, ...mkDocInfos }) }, - get SaveFamilyDoc() { return docCmds.DocumentSave.Rent({ name: `Save .mkfont`, ...mkDocInfos }) }, - get LoadFamilyDoc() { return docCmds.DocumentLoad.Rent({ name: `Load .mkfont`, ...mkDocInfos }) }, - get ReleaseFamilyDoc() { return docCmds.DocumentRelease.Rent({ ...mkDocInfos }) }, - EditInExternalEditor: require(`./cmd-edit-in-external-editor`), } \ No newline at end of file diff --git a/app/js/operations/commands/shared-ops.js b/app/js/operations/commands/shared-ops.js index daa7d8a..68afe30 100644 --- a/app/js/operations/commands/shared-ops.js +++ b/app/js/operations/commands/shared-ops.js @@ -1,11 +1,11 @@ 'use strict'; +const nkm = require(`@nkmjs/core`); const UNICODE = require(`../../unicode`); const mkfData = require(`../../data`); const mkfActions = require(`../actions`); - /** * @description TODO * @class @@ -33,7 +33,7 @@ class SHARED_OPS { static RemoveLayers(p_editor, p_target) { - let layers = [...p_target._layers._array]; + let layers = [...p_target._layers]; layers.forEach(layer => { if (layer._variant) { p_editor.Do(mkfActions.LayerRemove, { @@ -46,7 +46,7 @@ class SHARED_OPS { static AddLayers(p_editor, p_target, p_source, p_scaleFactor = 1, p_expanded = null) { - p_source._layers._array.forEach(layer => { + p_source._layers.forEach(layer => { if (p_target.availSlots <= 0) { return; } p_editor.Do(mkfActions.LayerAdd, { target: p_target, @@ -94,7 +94,7 @@ class SHARED_OPS { let resample = p_scaleFactor != 1; - p_source._layers._array.forEach(layerSource => { + p_source._layers.forEach(layerSource => { if (p_target.availSlots <= 0) { return; } @@ -118,13 +118,13 @@ class SHARED_OPS { let resample = p_scaleFactor != 1; - p_source._layers._array.forEach(layerSource => { + p_source._layers.forEach(layerSource => { if (p_target.availSlots <= 0) { return; } let srcId = layerSource.Get(mkfData.IDS.LYR_CHARACTER_NAME); - p_target._layers.ForEach(layerTarget => { + p_target._layers.forEach(layerTarget => { if (layerTarget.Get(mkfData.IDS.LYR_CHARACTER_NAME) == srcId) { let lyrValues = layerSource.Values(); if (resample) { mkfData.UTILS.Resample(lyrValues, mkfData.IDS.LYR_RESAMPLE_IDS, p_scaleFactor, true); } @@ -231,7 +231,7 @@ class SHARED_OPS { if (p_glyph.isNull) { return; } - p_glyph.activeVariant._layers.ForEach(layer => { + p_glyph.activeVariant._layers.forEach(layer => { if (layer._glyphInfos && layer.importedVariant) { let g = layer.importedVariant.glyph; if (!g.isNull && !p_exclude.includes(g)) { @@ -296,8 +296,8 @@ class SHARED_OPS { this._copiedString = ``; - for (let i = 0, n = p_editor.inspectedData.stack.count; i < n; i++) { - let eg = p_editor.data.GetGlyph(p_editor.inspectedData.stack.At(i).u); + for (let i = 0, n = p_editor.inspectedData.stack.length; i < n; i++) { + let eg = p_editor.data.GetGlyph(p_editor.inspectedData.stack[i].u); if (!eg.isNull) { this._copiedString = SVGOPS.SVGFromGlyphVariant(eg.activeVariant, true); break; @@ -306,10 +306,10 @@ class SHARED_OPS { navigator.clipboard.writeText(this._copiedString); - } catch (e) { this._copiedString = null; } + } catch (e) { this._copiedString = null; console.warn(e); } let copyArray = []; - p_editor.inspectedData.stack.ForEach(infos => { copyArray.push(infos); }); + p_editor.inspectedData.stack.forEach(infos => { copyArray.push(infos); }); if (copyArray.length == 0) { this.Clear(); } this._sourceInfos = copyArray; @@ -352,7 +352,7 @@ class SHARED_OPS { if (sourceList.length == 0) { return false; } let scaleFactor = p_editor.data.Get(mkfData.IDS.EM_UNITS) / this._sourceFamily.Get(mkfData.IDS.EM_UNITS), - selection = p_editor.inspectedData.stack._array, + selection = p_editor.inspectedData.stack, index = 0, maxIndex = sourceList.length; switch (p_pasteMode) { diff --git a/app/js/operations/svg-operations.js b/app/js/operations/svg-operations.js index 388f12c..149378f 100644 --- a/app/js/operations/svg-operations.js +++ b/app/js/operations/svg-operations.js @@ -117,7 +117,6 @@ SVGGraphicsElement.prototype.getBBox = function () { class SVGOperations { constructor() { } - static ATT_PATH = `d`; static ATT_EM_UNITS = `units-per-em`; static ATT_CAP_HEIGHT = `cap-height`; @@ -188,7 +187,7 @@ class SVGOperations { let markCol = p_markCol[0] == `#` ? p_markCol.substring(1) : p_markCol, style = svg.getElementsByTagName(`style`)[0], - styleObject = style ? css.ClassCSS(style.innerHTML) : {}; + styleObject = style ? nkm.style.helpers.RuleSetsFromString(style.innerHTML) : {}; for (let i = 0; i < pathArray.length; i++) { @@ -314,13 +313,6 @@ class SVGOperations { if (!foundRef && inlineStyle) { let lwrc = inlineStyle.toLowerCase(); if (lwrc.includes(A) || lwrc.includes(B) || lwrc.includes(C)) { foundRef = true; } - /* - let inlineObj = css.Rules(inlineStyle); - for (let c in inlineObj) { - let refValue = inlineObj[c]; - if (refValue == A || refValue == B) { foundRef = true; break; } - } - */ } if (!foundRef && (fillStyle == A || fillStyle == B || fillStyle == C)) { foundRef = true; } @@ -644,7 +636,7 @@ class SVGOperations { } - static FitLayerPath(p_settings, p_context, p_variant, p_layerPath) { + static FitLayerPath(p_layer, p_context, p_variant, p_layerPath) { let path = p_layerPath, //may be inverted prior to fitting @@ -657,11 +649,11 @@ class SVGOperations { offsetX = fit.x, offsetY = fit.y, scale = 1, - mirror = p_settings.Get(IDS.TR_MIRROR), - rot = p_settings.Get(IDS.TR_ROTATION), - skx = p_settings.Get(IDS.TR_SKEW_X), - sky = p_settings.Get(IDS.TR_SKEW_Y), - boundMode = p_settings.Get(IDS.TR_BOUNDS_MODE), + mirror = p_layer.Get(IDS.TR_MIRROR), + rot = p_layer.Get(IDS.TR_ROTATION), + skx = p_layer.Get(IDS.TR_SKEW_X), + sky = p_layer.Get(IDS.TR_SKEW_Y), + boundMode = p_layer.Get(IDS.TR_BOUNDS_MODE), pathTransform = svgpath(path), doReverse = false; @@ -669,8 +661,8 @@ class SVGOperations { //rotate incoming SVG Path & update bbox let - rotorder = p_settings.Get(IDS.TR_SKEW_ROT_ORDER), - ranchor = p_settings.Get(IDS.TR_ROTATION_ANCHOR), + rotorder = p_layer.Get(IDS.TR_SKEW_ROT_ORDER), + ranchor = p_layer.Get(IDS.TR_ROTATION_ANCHOR), tr = pathTransform; switch (rotorder) { @@ -684,7 +676,7 @@ class SVGOperations { } - switch (p_settings.Get(IDS.TR_LYR_BOUNDS_MODE)) { + switch (p_layer.Get(IDS.TR_LYR_BOUNDS_MODE)) { case ENUMS.BOUNDS_INSIDE: offsetX += p_context.bbox.x-fit.x; offsetY += p_context.bbox.y-fit.y; @@ -738,9 +730,9 @@ class SVGOperations { // Scale - switch (p_settings.Get(IDS.TR_LYR_SCALE_MODE)) { + switch (p_layer.Get(IDS.TR_LYR_SCALE_MODE)) { case ENUMS.SCALE_MANUAL: - scale = p_settings.Get(IDS.TR_LYR_SCALE_FACTOR); + scale = p_layer.Get(IDS.TR_LYR_SCALE_FACTOR); lyrWidth *= scale; lyrHeight *= scale; break; @@ -749,8 +741,8 @@ class SVGOperations { } let - ctxAnchor = p_settings.Get(IDS.TR_ANCHOR), - selfAnchor = p_settings.Get(IDS.TR_LYR_SELF_ANCHOR); + ctxAnchor = p_layer.Get(IDS.TR_ANCHOR), + selfAnchor = p_layer.Get(IDS.TR_LYR_SELF_ANCHOR); // Adjust offsetX based on context & input // context switch (ctxAnchor) { @@ -823,9 +815,9 @@ class SVGOperations { break; } - let yUserOffset = p_settings.Get(IDS.TR_Y_OFFSET); + let yUserOffset = p_layer.Get(IDS.TR_Y_OFFSET); offsetY += yUserOffset; - offsetX += p_settings.Get(IDS.TR_X_OFFSET); + offsetX += p_layer.Get(IDS.TR_X_OFFSET); path = pathTransform .scale(scale) @@ -926,12 +918,12 @@ class SVGOperations { p = p_variant.Get(IDS.PATH_DATA); for (let p in tr) { - let v = tr[p].value; + let v = tr[p]; if (v == null || nkm.u.isNumber(v) || nkm.u.isString(v)) { inlined += `mkf-${p}="${v}" `; } } for (let p in vr) { - let v = vr[p].value; + let v = vr[p]; if (v == null || nkm.u.isNumber(v) || nkm.u.isString(v)) { inlined += `mkf-${p}="${v}" `; } } diff --git a/app/js/signal.js b/app/js/signal.js index 2d8a350..07e2a93 100644 --- a/app/js/signal.js +++ b/app/js/signal.js @@ -51,34 +51,6 @@ class SIGNAL { */ static GLYPH_REMOVED = Symbol(`glyph-removed`); - /** - * @description TODO - * @type {symbol} - * @customtag read-only - */ - static SEARCH_TOGGLED = Symbol(`search-toggled`); - - /** - * @description TODO - * @type {symbol} - * @customtag read-only - */ - static SEARCH_STARTED = Symbol(`search-started`); - - /** - * @description TODO - * @type {symbol} - * @customtag read-only - */ - static SEARCH_COMPLETE = Symbol(`search-complete`); - - /** - * @description TODO - * @type {symbol} - * @customtag read-only - */ - static SEARCH_PROGRESS = Symbol(`search-progress`); - /** * @description TODO * @type {symbol} diff --git a/app/js/unicode.js b/app/js/unicode.js index ca655b0..4e4e43e 100644 --- a/app/js/unicode.js +++ b/app/js/unicode.js @@ -7,13 +7,14 @@ const UniBlock = require(`./catalogs/definition-uni-block`); const UniCategory = require(`./catalogs/definition-uni-cat`); const UniCategoryGroup = require(`./catalogs/definition-uni-cat-group`); +const _setActivateRangeCMD = new CmdSetActiveRange(); -class UNICODE extends nkm.com.helpers.Singleton { +class UNICODE extends nkm.com.Observable { constructor() { super(); } - static SetActiveRange = new CmdSetActiveRange(); + get SetActiveRange() { return _setActivateRangeCMD; } - static get MAX_GLYPH_COUNT() { return 65534; } + get MAX_GLYPH_COUNT() { return 65534; } _Init() { @@ -73,7 +74,7 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let i = 0; i < subs.length; i++) { let lcgc = subs[i]; lcgc.parent = lgc; - lcgc.primaryCommand = this.constructor.SetActiveRange; + lcgc.primaryCommand = this.SetActiveRange; lcgc.itemClass = UniCategory; cgc.content.push(lcgc); } @@ -406,7 +407,7 @@ class UNICODE extends nkm.com.helpers.Singleton { b.forEach((obj) => { obj.itemClass = UniBlock; - obj.primaryCommand = this.constructor.SetActiveRange; + obj.primaryCommand = this.SetActiveRange; }); this._blocks = b; @@ -35022,14 +35023,14 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let cid in cMap) { let char = cMap[cid]; this._charList[char.i] = char; - char.char = this.constructor.GetUnicodeCharacter(parseInt(cid, 16)); + char.char = this.GetUnicodeCharacter(parseInt(cid, 16)); } //let relMap = UNI_REL_MAPPING; } - static GetInfos(p_unicode, p_createLigature = false) { + GetInfos(p_unicode, p_createLigature = false) { let data = null; @@ -35038,18 +35039,18 @@ class UNICODE extends nkm.com.helpers.Singleton { this.GetSingle(p_unicode[0]) : this.GetLigature(p_unicode, p_createLigature); } else { - data = this.instance._charMap[p_unicode]; + data = this._charMap[p_unicode]; } return data || null; } - static GetSingle(p_lookup) { + GetSingle(p_lookup) { if (u.isNumber(p_lookup)) { p_lookup = p_lookup.toString(16).padStart(4, `0`); } - let result = this.instance._charMap[this.GetLookup(p_lookup)]; + let result = this._charMap[this.GetLookup(p_lookup)]; if (!result) { let isHex = u.isHex(p_lookup, 4); if (isHex) { @@ -35057,7 +35058,7 @@ class UNICODE extends nkm.com.helpers.Singleton { let uid = `${p_lookup}`, index = parseInt(uid, 16), - list = this.instance._blocks, + list = this._blocks, ownerBlock = null; result = { @@ -35071,7 +35072,7 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let i = 0, n = list.length; i < n; i++) { let block = list[i], start = block.start, - end = start + block.count; + end = start + block.length; if (index >= start && index < end) { ownerBlock = block; break; @@ -35081,20 +35082,20 @@ class UNICODE extends nkm.com.helpers.Singleton { if (ownerBlock) { result.block = ownerBlock; } else { console.error(`p_lookup = ${p_lookup} / index : ${index}`); } - this.instance._charMap[uid] = result; + this._charMap[uid] = result; } } return result; } - static GetLigature(p_lookups, p_create = true) { + GetLigature(p_lookups, p_create = true) { let lps = []; p_lookups.forEach((item) => { lps.push(this.GetLookup(item)); }); let ligatureLookup = lps.join(`+`), - ligature = this.instance._charMap[ligatureLookup]; + ligature = this._charMap[ligatureLookup]; if (!ligature) { if (!p_create) { return null; } @@ -35103,19 +35104,19 @@ class UNICODE extends nkm.com.helpers.Singleton { lps.forEach((item) => { charPts.push(this.GetUnicodeCharacter(parseInt(item, 16))); }); charPts = charPts.join(''); - ligature = { u: ligatureLookup, name: `LIGATURE ${charPts}`, cat: this.instance._categories.Liga, ligature: true, char: charPts }; - this.instance._charMap[ligatureLookup] = ligature; + ligature = { u: ligatureLookup, name: `LIGATURE ${charPts}`, cat: this._categories.Liga, ligature: true, char: charPts }; + this._charMap[ligatureLookup] = ligature; } return ligature; } - static GetAddress(p_character) { + GetAddress(p_character) { return p_character.codePointAt(0).toString(16).padStart(4, '0'); } - static GetUnicodeCharacter(p_codePoint) { + GetUnicodeCharacter(p_codePoint) { if (p_codePoint >= 0 && p_codePoint <= 0xD7FF || p_codePoint >= 0xE000 && p_codePoint <= 0xFFFF) { return String.fromCharCode(p_codePoint); @@ -35141,7 +35142,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * Attempts to find existing glyphs from UNICODE infos * @param {*} p_infos */ - static GetLookup(p_infos) { + GetLookup(p_infos) { let lookup = null; @@ -35157,7 +35158,7 @@ class UNICODE extends nkm.com.helpers.Singleton { return lookup; } - static UUni(p_infos) { + UUni(p_infos) { if (p_infos.ligature) { let ulist = p_infos.u.split(`+`); for (let i = 0; i < ulist.length; i++) { ulist[i] = `U+${ulist[i]}`; } @@ -35167,7 +35168,7 @@ class UNICODE extends nkm.com.helpers.Singleton { } } - static GetAddressesFromText(p_text, p_ignoreLigatures = true) { + GetAddressesFromText(p_text, p_ignoreLigatures = true) { let result = []; if (true) { //p_ignoreLigatures for (let i = 0; i < p_text.length; i++) { @@ -35187,7 +35188,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * @param {string} p_string accepts : 'a', 'abc', 'aU+0000', 'abcU+0000', 'U+0000U+0000U+0000', 'U+0000-abU+0000U+0000' * @returns */ - static TryGetInfosFromString(p_string, p_createLigature = false, p_sep = `-`) { + TryGetInfosFromString(p_string, p_createLigature = false, p_sep = `-`) { if (!p_string || p_string == ``) { return null; } @@ -35200,7 +35201,7 @@ class UNICODE extends nkm.com.helpers.Singleton { for (let i = 0; i < resolved.length; i++) { let uchar = resolved.substr(i, 1); if (uchar == ``) { continue; } - unicodes.push(UNICODE.GetAddress(uchar)); + unicodes.push(this.GetAddress(uchar)); } glyphInfos = this.GetInfos(unicodes, p_createLigature); @@ -35216,7 +35217,7 @@ class UNICODE extends nkm.com.helpers.Singleton { * @param {string} p_string accepts : 'a', 'abc', 'aU+0000', 'abcU+0000', 'U+0000U+0000U+0000', 'U+0000-abU+0000U+0000' * @returns */ - static ResolveString(p_string, p_sep = `-`) { + ResolveString(p_string, p_sep = `-`) { if (!p_string || p_string == ``) { return ``; } @@ -35243,7 +35244,7 @@ class UNICODE extends nkm.com.helpers.Singleton { cPt = Number.parseInt(uHex, 16); if (!Number.isNaN(cPt)) { result += String.fromCodePoint(cPt); } - else{ result += `U+${uHex}`; } + else { result += `U+${uHex}`; } if (cSplit.length == 0) { continue; } if (cSplit.length == 1 && cSplit[0] == ``) { continue; } // Trailing separator : U+0000- @@ -35261,4 +35262,4 @@ class UNICODE extends nkm.com.helpers.Singleton { } -module.exports = UNICODE; \ No newline at end of file +module.exports = new UNICODE(); \ No newline at end of file diff --git a/app/js/views/welcome-view.js b/app/js/views/welcome-view.js index 02db106..404fc31 100644 --- a/app/js/views/welcome-view.js +++ b/app/js/views/welcome-view.js @@ -31,10 +31,7 @@ class WelcomeView extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'display': 'flex', - 'align-content': `center`, - 'justify-content': `center`, - 'align-items': `center`, + ...nkm.style.flex.center, }, '.body': { 'width': `750px`, @@ -95,12 +92,12 @@ class WelcomeView extends base { defaultWidgetClass: nkm.uilib.buttons.Button, handles: [ { - command: mkfCmds.CreateFamilyDoc, + command: nkm.main._MKFontDocDefinition.CreateCmd, variant: ui.FLAGS.MINIMAL, flavor: ui.FLAGS.CTA, group: `mkfont` }, { - command: mkfCmds.LoadFamilyDoc, + command: nkm.main._MKFontDocDefinition.LoadCmd, variant: ui.FLAGS.MINIMAL, flavor: nkm.com.FLAGS.LOADING, group: `mkfont` }, @@ -165,7 +162,7 @@ class WelcomeView extends base { label: `Settings`, variant: ui.FLAGS.FRAME, group: `settings`, - command: mkfCmds.OpenPrefs + command: nkm.app.ops.commands.OpenAppSettings } ] }; @@ -178,7 +175,7 @@ class WelcomeView extends base { latestTagName = p_rsc.content[0].name, semVer = latestTagName.substring(1).split(`.`); - if(nkm.env.ENV.instance.VersionDiff(semVer) > 0){ + if(nkm.env.ENV.VersionDiff(semVer) > 0){ this._newVersionBtn.label = `${semVer.join(`.`)} Available`; this._newVersionBtn.visible = true; } diff --git a/app/js/widgets/control-header.js b/app/js/widgets/control-header.js deleted file mode 100644 index 2282cb7..0000000 --- a/app/js/widgets/control-header.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; - -const nkm = require(`@nkmjs/core`); -const ui = nkm.ui; -const uilib = nkm.uilib; - -const base = ui.Widget; -class ControlHeader extends base { - constructor() { super(); } - - static __usePaintCallback = true; - static __defaultSelectOnActivation = true; - static __distribute = nkm.com.helpers.OptionsDistribute.Ext() - .To(`label`, (p_target, p_value) => { p_target._label.Set(p_value); }) - .To(`label2`, (p_target, p_value) => { p_target._label2.Set(p_value); }, null) - .To(`htitle`, (p_target, p_value) => { p_target.htitle = p_value; }); - - - _Init() { - super._Init(); - this._extensions.Remove(this._extDrag); - this._notifiesSelectionStack = true; - } - - set options(p_value) { this.constructor.__distribute.Update(this, p_value); } - - get editor() { - if (this._editor) { return this._editor; } - return nkm.datacontrols.FindEditor(this); - } - set editor(p_value) { this._editor = p_value; } - - static _Style() { - return nkm.style.Extends({ - ':host': { - //'@': ['fade-in'], - 'position': 'relative', - 'width': '100%', - 'border-bottom': '1px solid rgba(127, 127, 127, 0.1)', - 'margin-top': '2px', - 'margin': '0 2px 5px 2px', - 'display':`flex`, - 'flex-flow':`row nowrap` - }, - '.label': { - flex:`1 1 50%`, - 'text-transform': 'uppercase', - 'opacity': '0.5', - 'font-size': `0.65em` - }, - '.second': { - //'text-align':`right` - } - - }, base._Style()); - } - - _Render() { - - super._Render(); - this._label = new ui.manipulators.Text(ui.dom.El(`div`, { class: `label font-xsmall` }, this._host), false, false); - this._label2 = new ui.manipulators.Text(ui.dom.El(`div`, { class: `label second font-xsmall` }, this._host), true, false); - - } - - _CleanUp() { - super._CleanUp(); - } - -} - -module.exports = ControlHeader; -ui.Register(`mkf-control-header`, ControlHeader); \ No newline at end of file diff --git a/app/js/widgets/family-glyph-monitor.js b/app/js/widgets/family-glyph-monitor.js index 9fcfcec..ba3650c 100644 --- a/app/js/widgets/family-glyph-monitor.js +++ b/app/js/widgets/family-glyph-monitor.js @@ -18,7 +18,7 @@ class FamilyGlyphMonitor extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, 'height':'8px', 'width':'100px', 'display':'flex', @@ -26,10 +26,10 @@ class FamilyGlyphMonitor extends base { 'background-color':'rgba(0,0,0,0.5)' }, '.counter': { - '@':[`absolute-center`] + ...nkm.style.rules.absolute.center, }, '.progress': { - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, 'max-height':'2px' } }, base._Style()); @@ -51,9 +51,9 @@ class FamilyGlyphMonitor extends base { _OnDataUpdated(p_data){ super._OnDataUpdated(p_data); - let p = p_data._glyphs.count / UNICODE.MAX_GLYPH_COUNT; + let p = p_data._glyphs.length / UNICODE.MAX_GLYPH_COUNT; this._progressBar.progress = p; - this._counter.Set(`${p_data._glyphs.count} / ${UNICODE.MAX_GLYPH_COUNT}`); + this._counter.Set(`${p_data._glyphs.length} / ${UNICODE.MAX_GLYPH_COUNT}`); this._progressBar.flavor = p < 0.5 ? nkm.com.FLAGS.READY : p < 0.8 ? nkm.com.FLAGS.WARNING : nkm.com.FLAGS.ERROR; } diff --git a/app/js/widgets/glyph-canvas-renderer.js b/app/js/widgets/glyph-canvas-renderer.js index 05ff359..85491aa 100644 --- a/app/js/widgets/glyph-canvas-renderer.js +++ b/app/js/widgets/glyph-canvas-renderer.js @@ -175,12 +175,12 @@ class GlyphCanvasRenderer extends __BASE__ { if (this._computedPath && this._drawBBox) { let cw = this._glyphWidth; ctx.lineWidth = iscale; - ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-dark-rgb`)},0.8)`; + ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-low-rgb`)},0.8)`; ctx.beginPath(); ctx.rect(0, 0, cw, f.em); ctx.stroke(); - ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-dark-rgb`)},0.25)`; + ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-low-rgb`)},0.25)`; ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(cw, f.em); ctx.moveTo(cw, 0); ctx.lineTo(0, f.em); @@ -194,12 +194,12 @@ class GlyphCanvasRenderer extends __BASE__ { if (this._computedPath) { let cw = this._glyphWidth; ctx.lineWidth = iscale; - ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-dark-rgb`)},0.8)`; + ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-low-rgb`)},0.8)`; ctx.beginPath(); ctx.rect(0, 0, cw, f.em); ctx.stroke(); - ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-dark-rgb`)},0.25)`; + ctx.strokeStyle = `rgba(${nkm.style.Get(`--col-warning-low-rgb`)},0.25)`; ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(cw, f.em); ctx.moveTo(cw, 0); ctx.lineTo(0, f.em); diff --git a/app/js/widgets/glyph-identity.js b/app/js/widgets/glyph-identity.js index 2042790..5d8b300 100644 --- a/app/js/widgets/glyph-identity.js +++ b/app/js/widgets/glyph-identity.js @@ -21,10 +21,9 @@ class GlyphIdentity extends base { static _Style() { return nkm.style.Extends({ ':host': { + ...nkm.style.flex.column, 'min-height': 'auto', //'padding': '20px', - 'display': 'flex', - 'flex-flow': 'column nowrap', 'padding-bottom': '5px', 'margin-bottom': '5px', //'border-bottom': '1px solid rgba(0,0,0,0.25)', diff --git a/app/js/widgets/glyph-mini-preview.js b/app/js/widgets/glyph-mini-preview.js index 4ace4f5..737e9ce 100644 --- a/app/js/widgets/glyph-mini-preview.js +++ b/app/js/widgets/glyph-mini-preview.js @@ -29,30 +29,27 @@ class GlyphMiniPreview extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, + ...nkm.style.rules.display.flex, 'transition': `opacity 0.25s ease`, 'padding': `3px`, 'cursor': 'pointer', - 'position': 'relative', - 'display': 'flex', 'aspect-ratio': '1/1',// 'var(--preview-ratio)', 'overflow': 'hidden', - 'background-color': 'rgba(0,0,0,0.5)', + 'background-color': `rgba(var(--col-base-200-rgb), 1)`, 'border-radius': '5px', }, ':host(.null-glyph)': { - 'background-color': 'rgba(0,0,0,0.25)', + 'background-color': 'rgba(var(--col-base-100-rgb), 0.3)', }, ':host(:not(.null-glyph)) .placeholder, :host(.null-glyph) .renderer': { 'display': 'none' }, '.renderer': { - 'position': 'relative', 'width': '100%', 'aspect-ratio': '1/1', }, '.placeholder': { 'flex': '1 0 100%', - 'position': 'relative', 'display': `grid`, 'place-items': `center`, 'text-align': `center`, diff --git a/app/js/widgets/glyph-mini-slot.js b/app/js/widgets/glyph-mini-slot.js index a4e9899..fb3e119 100644 --- a/app/js/widgets/glyph-mini-slot.js +++ b/app/js/widgets/glyph-mini-slot.js @@ -47,18 +47,16 @@ class GlyphMiniSlot extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, + ...nkm.style.flex.column, + ...nkm.style.flex.align.center.all, 'transition': 'opacity 0.15s, transform 0.05s, box-shadow 0.05s', 'box-shadow': `none`, 'transform': 'scale(1)', - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', 'box-sizing': 'border-box', 'padding': '2px', 'border-radius': '3px', - 'background-color': '#161616', - 'align-items': 'center', + 'background-color': `#161616`, 'overflow': 'clip', 'border':`1px solid rgba(0,0,0,0)` }, @@ -72,10 +70,10 @@ class GlyphMiniSlot extends base { 'border-color':`var(--col-active)` }, ':host(.exists)': { - 'background-color': '#1e1e1e' + 'background-color': `rgba(var(--col-base-200-rgb), 1)` }, '.cat-hint': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'width': '4px', 'height': '4px', 'border-radius': '10px', @@ -86,23 +84,18 @@ class GlyphMiniSlot extends base { }, ':host(.unpainted) .box': { 'display': 'none' }, '.preview': { - 'position': 'relative', + ...nkm.style.flex.column, 'border-radius': 'inherit', //'aspect-ratio': 'var(--preview-ratio)', - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, 'min-height': 'var(--preview-height)', 'min-width': 'var(--preview-width)', 'width': '100%', - 'display': 'flex', - 'flex-flow': 'row nowrap', 'justify-content': 'center', 'overflow-y': 'clip' }, '.box': { - 'width': '100%', - 'height': '100%', - //'aspect-ratio': 'var(--preview-ratio)', - 'position': 'absolute', + ...nkm.style.rules.absolute.fill, }, '.placeholder': { 'display': `grid`, @@ -116,7 +109,7 @@ class GlyphMiniSlot extends base { }, '.oob': { 'display': 'none', - '@': ['absolute-center'], + ...nkm.style.rules.absolute.center, 'width': '50%' }, ':host(.out-of-bounds) .oob': { @@ -127,7 +120,7 @@ class GlyphMiniSlot extends base { }, ':host(.exists:not(.do-export)) .preview:before': { 'content': `""`, - 'position': `absolute`, + ...nkm.style.rules.pos.abs, 'top': '50%', 'left': '50%', 'transform': 'translate(-50%, -50%) rotate(45deg)', 'width': `1px`, 'height': `120%`, diff --git a/app/js/widgets/glyph-picker.js b/app/js/widgets/glyph-picker.js index 547bb9f..5d0ac6b 100644 --- a/app/js/widgets/glyph-picker.js +++ b/app/js/widgets/glyph-picker.js @@ -39,9 +39,9 @@ class GlyphPicker extends base { this._searchSettings = new mkfData.SearchSettings(); this._searchSettings - .Watch(SIGNAL.SEARCH_TOGGLED, this._OnSearchToggled, this) - .Watch(SIGNAL.SEARCH_STARTED, this._OnSearchStarted, this) - .Watch(SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this); + .Watch(nkm.data.SIGNAL.SEARCH_TOGGLED, this._OnSearchToggled, this) + .Watch(nkm.data.SIGNAL.SEARCH_STARTED, this._OnSearchStarted, this) + .Watch(nkm.data.SIGNAL.SEARCH_COMPLETE, this._OnSearchComplete, this); this._dataObserver .Hook(SIGNAL.GLYPH_ADDED, this._OnGlyphAdded, this) @@ -79,8 +79,8 @@ class GlyphPicker extends base { this._contentRange = new RangeContent(); this._contentRange.Watch(nkm.com.SIGNAL.READY, this._OnRangeReady, this); this.forwardData - .To(this._searchSettings, { mapping: `family` }) - .To(this._contentRange, { mapping: `family` }); + .To(this._searchSettings, { set: `family` }) + .To(this._contentRange, { set: `family` }); this._content = null; this._flags.Add(this, __noToolbar); @@ -96,17 +96,15 @@ class GlyphPicker extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', + ...nkm.style.flex.column, 'padding': `10px`, 'width': '300px', 'height': '350px', - 'display': 'flex', - 'flex-flow': 'column nowrap', 'overflow': 'clip', 'grid-gap': '5px' }, '.search, .toolbar': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, }, '.toolbar': { 'margin-top': `5px` @@ -115,8 +113,7 @@ class GlyphPicker extends base { 'display': 'none' }, '.dom-stream': { - 'position': 'relative', - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'margin-top': `5px`, 'overflow': 'auto', }, @@ -124,7 +121,7 @@ class GlyphPicker extends base { 'display': 'block !important' }, '.search-status': { - '@': ['absolute-center'] + ...nkm.style.rules.absolute.center, } }, base._Style()); } @@ -141,8 +138,8 @@ class GlyphPicker extends base { let toggle = this._searchActive; if (!p_value || p_value == ``) { toggle = false; } else { toggle = true; } - this._searchSettings.Set(mkfData.IDS_EXT.SEARCH_ENABLED, toggle); - this._searchSettings.Set(mkfData.IDS_EXT.SEARCH_TERM, p_value); + this._searchSettings.Set(nkm.data.IDS.SEARCH_ENABLED, toggle); + this._searchSettings.Set(nkm.data.IDS.SEARCH_TERMS, p_value); } } } @@ -217,7 +214,7 @@ class GlyphPicker extends base { _OnSearchToggled() { let oldValue = this._searchActive; - this._searchActive = this._searchSettings ? this._searchSettings.Get(mkfData.IDS_EXT.SEARCH_ENABLED) : false; + this._searchActive = this._searchSettings ? this._searchSettings.Get(nkm.data.IDS.SEARCH_ENABLED) : false; if (oldValue == this._searchActive) { return; } @@ -280,12 +277,6 @@ class GlyphPicker extends base { _RefreshItems() { this._domStreamer._Stream(null, null, true); - /* - for (let i = 0; i < this._displayList.count; i++) { - let item = this._displayList.At(i); - if (`_UpdateGlyphPreview` in item) { item._UpdateGlyphPreview(); } - } - */ } //#endregion diff --git a/app/js/widgets/glyph-preview-group.js b/app/js/widgets/glyph-preview-group.js index 2891611..0927fc7 100644 --- a/app/js/widgets/glyph-preview-group.js +++ b/app/js/widgets/glyph-preview-group.js @@ -30,8 +30,7 @@ class GlyphPreviewGroup extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], - 'position': 'relative', + ...nkm.style.rules.fadeIn, 'width': '320px', 'grid-gap': `5px`, 'display': 'grid', @@ -47,17 +46,16 @@ class GlyphPreviewGroup extends base { 'border-radius': '3px', }, '.box': { - 'position': 'relative', 'display': 'flex', 'aspect-ratio': '1/1',// 'var(--preview-ratio)', - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'width': '100%', 'overflow': 'hidden', 'background-color': 'rgba(0,0,0,0.5)', 'border-radius': '5px', }, '.tag': { - '@': [`absolute-bottom-right`], + ...nkm.style.rules.absolute.center, 'margin': `10px` }, }, base._Style()); @@ -78,7 +76,7 @@ class GlyphPreviewGroup extends base { this._counter = this.Attach(nkm.uilib.widgets.Tag, `tag`); this._counter.label = `+50`; - this._counter.bgColor = `var(--col-cta-dark)`; + this._counter.bgColor = `var(--col-cta-low)`; } diff --git a/app/js/widgets/glyph-preview.js b/app/js/widgets/glyph-preview.js index dd0ed03..521242d 100644 --- a/app/js/widgets/glyph-preview.js +++ b/app/js/widgets/glyph-preview.js @@ -28,11 +28,9 @@ class GlyphPreview extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, 'transition': `opacity 0.25s ease`, 'padding': `3px`, - - 'position': 'relative', 'display': 'flex', 'aspect-ratio': '1/1',// 'var(--preview-ratio)', 'width': '320px', @@ -46,13 +44,11 @@ class GlyphPreview extends base { }, ':host(:not(.null-glyph)) .placeholder, :host(.null-glyph) .renderer': { 'display': 'none' }, '.renderer': { - 'position': 'relative', 'width': '100%', 'aspect-ratio': '1/1', }, '.placeholder': { 'flex': '1 0 100%', - 'position': 'relative', 'display': `grid`, 'place-items': `center`, 'text-align': `center`, @@ -63,10 +59,10 @@ class GlyphPreview extends base { 'line-height': '100%' }, '.infoTag': { - '@': ['absolute-center'] + ...nkm.style.rules.absolute.center, }, '.emptyTag': { - '@': ['absolute-bottom'], + ...nkm.style.rules.absolute.bottom, 'margin': `5px` } }, base._Style()); @@ -96,7 +92,7 @@ class GlyphPreview extends base { this._emptyTag = this.Attach(uilib.widgets.Tag, `emptyTag`); this._emptyTag.options = { label: `empty`, - bgColor: nkm.style.Get(`--col-warning-dark`), + bgColor: nkm.style.Get(`--col-warning-low`), htitle: `This glyph is void.` }; this._emptyTag.visible = false; diff --git a/app/js/widgets/glyph-slot-quick-menu.js b/app/js/widgets/glyph-slot-quick-menu.js index a346ba7..220044e 100644 --- a/app/js/widgets/glyph-slot-quick-menu.js +++ b/app/js/widgets/glyph-slot-quick-menu.js @@ -54,7 +54,7 @@ class GlyphSlotQuickmenu extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, 'transition': `opacity 0.25s ease`, 'background-color': 'rgba(19, 19, 19, 0.8)', 'border-radius': `4px`, diff --git a/app/js/widgets/glyph-slot.js b/app/js/widgets/glyph-slot.js index 761c308..efc1fc0 100644 --- a/app/js/widgets/glyph-slot.js +++ b/app/js/widgets/glyph-slot.js @@ -48,23 +48,17 @@ class GlyphSlot extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.flex.column, + ...nkm.style.rules.fadeIn, 'transition': 'opacity 0.15s, transform 0.05s, box-shadow 0.05s', 'box-shadow': `none`, 'transform': 'scale(1)', - 'position': 'relative', '--col-cat': 'var(--col-active)', - //'min-height': 'var(--preview-size)', - //'border':'1px solid gray', - 'display': 'flex', - 'flex-flow': 'column nowrap', - //'margin-bottom': '4px', 'box-sizing': 'border-box', 'padding': '10px', 'border-radius': '5px', - 'background-color': '#161616', + 'background-color': 'rgba(var(--col-base-100-rgb), 0.3)', //161616 'align-items': 'center', - //'overflow': 'clip', }, ':host(:hover)': { 'box-shadow': `0 12px 20px -10px #131313`, @@ -72,13 +66,13 @@ class GlyphSlot extends base { 'transform': 'scale(1.1)', }, ':host(.selected)': { - 'background-color': '#353535 !important' + 'border': '2px solid rgba(var(--col-active-rgb), 1) !important' //353535 }, ':host(.exists)': { - 'background-color': '#1e1e1e' + 'background-color': `rgba(var(--col-base-200-rgb), 1)` }, '.cat-hint': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'width': '4px', 'height': '4px', 'border-radius': '10px', @@ -89,23 +83,18 @@ class GlyphSlot extends base { }, ':host(.unpainted) .box': { 'display': 'none' }, '.preview': { - 'position': 'relative', + ...nkm.style.flex.column, 'border-radius': 'inherit', //'aspect-ratio': 'var(--preview-ratio)', - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, 'min-height': 'var(--preview-height)', 'min-width': 'var(--preview-width)', 'width': '100%', - 'display': 'flex', - 'flex-flow': 'row nowrap', 'justify-content': 'center', 'overflow-y': 'clip' }, '.box': { - 'width': '100%', - 'height': '100%', - //'aspect-ratio': 'var(--preview-ratio)', - 'position': 'absolute', + ...nkm.style.rules.absolute.fill, }, '.label': { 'margin': '0', @@ -136,11 +125,11 @@ class GlyphSlot extends base { }, '.oob': { 'display': 'none', - '@': ['absolute-center'], + ...nkm.style.rules.absolute.center, 'width': '50%' }, ':host(.empty) .preview': { - //'border':`1px rgba(var(--col-warning-dark-rgb),0.5) solid` + //'border':`1px rgba(var(--col-warning-low-rgb),0.5) solid` }, ':host(.out-of-bounds) .oob': { 'display': 'block !important' @@ -149,12 +138,12 @@ class GlyphSlot extends base { 'background-color': 'rgba(var(--col-error-rgb), 0.5) !important' }, '.quick-menu': { - '@': ['absolute-top-left'], + ...nkm.style.rules.absolute.topLeft, 'margin': '5px' }, ':host(.exists:not(.do-export)) .preview:before': { 'content': `""`, - 'position': `absolute`, + ...nkm.style.rules.pos.abs, 'top': '50%', 'left': '50%', 'transform': 'translate(-50%, -50%) rotate(45deg)', 'width': `1px`, 'height': `120%`, diff --git a/app/js/widgets/glyph-stats.js b/app/js/widgets/glyph-stats.js index adf6cc3..9d728c4 100644 --- a/app/js/widgets/glyph-stats.js +++ b/app/js/widgets/glyph-stats.js @@ -24,10 +24,9 @@ class GlyphStats extends base { static _Style() { return nkm.style.Extends({ ':host': { + ...nkm.style.flex.column, 'min-height': 'auto', //'padding': '20px', - 'display': 'flex', - 'flex-flow': 'column nowrap', 'padding-bottom': '5px', 'margin-bottom': '5px', //'border-bottom': '1px solid rgba(0,0,0,0.25)', @@ -53,12 +52,13 @@ class GlyphStats extends base { 'margin': `5px`, }, '.shortcuts': { - 'flex': `1 1 auto`, + ...nkm.style.flexItem.fill, 'display': 'grid', 'grid-template-columns': 'repeat(4, 1fr)', 'grid-gap': '10px' }, '.shortcut-item': { + ...nkm.style.flexItem.fill, 'aspect-ratio': `1/1` } }, base._Style()); @@ -77,7 +77,7 @@ class GlyphStats extends base { trigger: { fn: () => { let list = []; - this._data.layerUsers.ForEach(user => { + this._data.layerUsers.forEach(user => { if (!user._variant || !user._variant.glyph) { return; } list.push(user._variant.glyph.unicodeInfos); }); @@ -178,11 +178,11 @@ class GlyphStats extends base { _OnDataUpdated(p_data) { super._OnDataUpdated(p_data); let users = p_data.layerUsers; - if (users.count == 0) { + if (users.length == 0) { this._refTitle.Set(null); this._selectAllUsers.visible = false; } else { - this._refTitle.Set(`Used as component ×${users.count}`); + this._refTitle.Set(`Used as component ×${users.length}`); this._selectAllUsers.visible = true; } } diff --git a/app/js/widgets/importation/assign-base.js b/app/js/widgets/importation/assign-base.js index 1572243..8a3f85c 100644 --- a/app/js/widgets/importation/assign-base.js +++ b/app/js/widgets/importation/assign-base.js @@ -12,8 +12,6 @@ const mkfCmds = mkfOperations.commands; const __flag_inherited = `inherited`; -const PropertyControl = require(`../property-control`); - const base = nkm.datacontrols.ControlView; class AssignBaseControl extends base { constructor() { super(); } @@ -29,7 +27,7 @@ class AssignBaseControl extends base { this._importList = null; this._dataObserver.Hook(nkm.com.SIGNAL.VALUE_CHANGED, this._OnDataValueChanged, this); - this._builder.defaultControlClass = PropertyControl; + this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this._builder.defaultCSS = `control`; } @@ -40,15 +38,12 @@ class AssignBaseControl extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', - 'flex-flow': 'column nowrap', - 'align-items': 'center', - 'flex': '0 1 auto', - 'align-items': `stretch` + ...nkm.style.flex.column, + 'align-items': `stretch`, + ...nkm.style.flexItem.shrink, }, '.control': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'margin': '0 0 5px 0' }, }, base._Style()); @@ -68,7 +63,7 @@ class AssignBaseControl extends base { if (this._data && this._importList) { this._UpdateList(); } } - _OnDataValueChanged(p_data, p_id, p_valueObj, p_oldValue) { + _OnDataValueChanged(p_data, p_id, p_newValue, p_oldValue) { if (!this.constructor.__valueIDs.includes(p_id)) { return; } this._UpdateList(); } diff --git a/app/js/widgets/importation/assign-block-range.js b/app/js/widgets/importation/assign-block-range.js index 042bf4e..31fd328 100644 --- a/app/js/widgets/importation/assign-block-range.js +++ b/app/js/widgets/importation/assign-block-range.js @@ -5,12 +5,14 @@ const ui = nkm.ui; const uilib = nkm.uilib; const inputs = nkm.uilib.inputs; +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; +const ValueControl = nkm.datacontrols.widgets.ValueControl; + const mkfData = require(`../../data`); const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const AssignBaseControl = require("./assign-base"); -const ControlHeader = require(`../control-header`); const base = AssignBaseControl; class AssignSelectionBlockRangeControl extends base { @@ -19,7 +21,7 @@ class AssignSelectionBlockRangeControl extends base { static __valueIDs = []; static __controls = [ - { cl: ControlHeader, options: { label: `Block infos` } }, + { cl: MiniHeader, options: { label: `Block infos` } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_BLOCK } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_BLOCK_START } }, ]; diff --git a/app/js/widgets/importation/assign-block.js b/app/js/widgets/importation/assign-block.js index 80ec8b3..b629faf 100644 --- a/app/js/widgets/importation/assign-block.js +++ b/app/js/widgets/importation/assign-block.js @@ -10,7 +10,6 @@ const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const AssignBaseControl = require("./assign-base"); -const ControlHeader = require(`../control-header`); const base = AssignBaseControl; class AssignSelectionBlockControl extends base { @@ -22,7 +21,7 @@ class AssignSelectionBlockControl extends base { ]; static __controls = [ - { cl: ControlHeader, options: { label: `Block infos` } }, + { cl: nkm.datacontrols.widgets.MiniHeader, options: { label: `Block infos` } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_BLOCK } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_BLOCK_START } }, ]; diff --git a/app/js/widgets/importation/assign-filename.js b/app/js/widgets/importation/assign-filename.js index 31388b9..ad1e4de 100644 --- a/app/js/widgets/importation/assign-filename.js +++ b/app/js/widgets/importation/assign-filename.js @@ -11,7 +11,6 @@ const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const AssignBaseControl = require("./assign-base"); -const ControlHeader = require(`../control-header`); const base = AssignBaseControl; class AssignSelectionFilenameControl extends base { @@ -22,7 +21,7 @@ class AssignSelectionFilenameControl extends base { mkfData.IDS_EXT.IMPORT_SEPARATOR]; static __controls = [ - { cl: ControlHeader, options: { label: `Filename infos` } }, + { cl: nkm.datacontrols.widgets.MiniHeader, options: { label: `Filename infos` } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_PREFIX } }, { options: { propertyId: mkfData.IDS_EXT.IMPORT_SEPARATOR } }, ]; diff --git a/app/js/widgets/importation/assign-selection-range.js b/app/js/widgets/importation/assign-selection-range.js index 19b2897..7c1bf5c 100644 --- a/app/js/widgets/importation/assign-selection-range.js +++ b/app/js/widgets/importation/assign-selection-range.js @@ -10,7 +10,6 @@ const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const AssignBaseControl = require("./assign-base"); -const ControlHeader = require(`../control-header`); const base = AssignBaseControl; class AssignSelectionRangeControl extends base { @@ -19,7 +18,7 @@ class AssignSelectionRangeControl extends base { static __valueIDs = []; static __controls = [ - //{ cl: ControlHeader, options: { label: `Selection infos` } }, + //{ cl: MiniHeader, options: { label: `Selection infos` } }, ]; _Init() { @@ -45,7 +44,7 @@ class AssignSelectionRangeControl extends base { _UpdateList() { // preprocess required values... - this._block = this.editor._importSelection ? this.editor._importSelection.stack._array : []; + this._block = this.editor._importSelection ? this.editor._importSelection.stack : []; this._start = 0; this._count = this._block.length; this._end = this._start + this._count; diff --git a/app/js/widgets/importation/assign-selection.js b/app/js/widgets/importation/assign-selection.js index da03d8c..099e330 100644 --- a/app/js/widgets/importation/assign-selection.js +++ b/app/js/widgets/importation/assign-selection.js @@ -10,7 +10,6 @@ const mkfOperations = require(`../../operations`); const mkfCmds = mkfOperations.commands; const AssignBaseControl = require("./assign-base"); -const ControlHeader = require(`../control-header`); const base = AssignBaseControl; class AssignSelectionControl extends base { @@ -19,7 +18,7 @@ class AssignSelectionControl extends base { static __valueIDs = []; static __controls = [ - { cl: ControlHeader, options: { label: `Selection infos` } }, + { cl: nkm.datacontrols.widgets.MiniHeader, options: { label: `Selection infos` } }, ]; _Init() { @@ -41,7 +40,7 @@ class AssignSelectionControl extends base { _UpdateList() { // preprocess required values... - this._block = this.editor._importSelection ? this.editor._importSelection.stack._array : []; + this._block = this.editor._importSelection ? this.editor._importSelection.stack : []; this._start = 0; this._count = this._block.length; this._end = this._start + this._count; diff --git a/app/js/widgets/importation/import-list-item.js b/app/js/widgets/importation/import-list-item.js index 76351e9..d93eb21 100644 --- a/app/js/widgets/importation/import-list-item.js +++ b/app/js/widgets/importation/import-list-item.js @@ -48,7 +48,7 @@ class ImportListItem extends base { }, ':host(.preserved):before': { //'content': `""`, - '@': ['absolute-left'], + ...nkm.style.rules.absolute.left, 'width': `10px`, 'height': `10px`, 'margin-top': `-25px`, 'margin-left': `54px`, @@ -59,7 +59,7 @@ class ImportListItem extends base { ':host(:not(.replace)) .replace-icon': { 'display': 'none', }, ':host(.ignored):after': { 'content': `""`, - 'position': `absolute`, + ...nkm.style.rules.pos.abs, 'width': `1px`, 'height': `120%`, 'transform': `rotate(45deg)`, 'margin-left': `36px`, @@ -67,7 +67,6 @@ class ImportListItem extends base { 'background-color': `var(--col-warning)` }, '.renderer': { - 'position': 'relative', 'aspect-ratio': '1/1', 'width': '52px', 'border-radius': '3px', @@ -96,7 +95,7 @@ class ImportListItem extends base { 'border-radius': '3px' }, '.sic': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'top': `4px`, 'left': `44px`, 'width': `20px`, diff --git a/app/js/widgets/importation/import-mkfont-item.js b/app/js/widgets/importation/import-mkfont-item.js index 7480427..35e729b 100644 --- a/app/js/widgets/importation/import-mkfont-item.js +++ b/app/js/widgets/importation/import-mkfont-item.js @@ -54,7 +54,7 @@ class ImportMKFontItem extends base { }, ':host(.preserved):before': { //'content': `""`, - '@': ['absolute-left'], + ...nkm.style.rules.absolute.left, 'width': `10px`, 'height': `10px`, 'margin-top': `-25px`, 'margin-left': `54px`, @@ -65,7 +65,7 @@ class ImportMKFontItem extends base { ':host(:not(.replace)) .replace-icon': { 'display': 'none', }, ':host(.ignored):after': { 'content': `""`, - 'position': `absolute`, + ...nkm.style.rules.pos.abs, 'width': `1px`, 'height': `120%`, 'transform': `rotate(45deg)`, 'margin-left': `36px`, @@ -73,7 +73,6 @@ class ImportMKFontItem extends base { 'background-color': `var(--col-warning)` }, '.renderer': { - 'position': 'relative', 'aspect-ratio': '1/1', 'width': `${__s}px`, 'border-radius': '3px', @@ -102,7 +101,7 @@ class ImportMKFontItem extends base { 'border-radius': '3px' }, '.sic': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'top': `4px`, 'left': `44px`, 'width': `20px`, diff --git a/app/js/widgets/index.js b/app/js/widgets/index.js index dbdab91..e24d396 100644 --- a/app/js/widgets/index.js +++ b/app/js/widgets/index.js @@ -12,9 +12,7 @@ module.exports = { GlyphIdentity: require(`./glyph-identity`), GlyphStats: require(`./glyph-stats`), GlyphPicker: require(`./glyph-picker`), - PropertyControl: require(`./property-control`), PangramRenderer: require(`./pangram-renderer`), - ControlHeader: require(`./control-header`), InspectorHeader: require(`./inspector-header`), SearchStatus: require(`./search-status`), LigaButton: require(`./liga-button`), diff --git a/app/js/widgets/inspector-header.js b/app/js/widgets/inspector-header.js index 1a4693b..65c3ac2 100644 --- a/app/js/widgets/inspector-header.js +++ b/app/js/widgets/inspector-header.js @@ -18,8 +18,7 @@ class InspectorHeader extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], - 'position': 'relative', + ...nkm.style.rules.fadeIn, 'height': '20px', 'min-height': '20px', 'width': 'calc(100% - 20px)', @@ -33,7 +32,7 @@ class InspectorHeader extends base { 'opacity': '0.5', }, '.ico': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'transform': 'scale(1.2) rotate(15deg) translateY(-10px)', 'width': '50px', 'right': `0`, diff --git a/app/js/widgets/layer-control.js b/app/js/widgets/layer-control.js index e9ddd13..d3fa089 100644 --- a/app/js/widgets/layer-control.js +++ b/app/js/widgets/layer-control.js @@ -8,7 +8,6 @@ const mkfData = require(`../data`); const mkfOperations = require(`../operations`); const mkfCmds = mkfOperations.commands; -const PropertyControl = require(`./property-control`); const LayerTransformSettings = require(`./tr-layer-inspector`); const GlyphMiniPreview = require(`./glyph-mini-preview`); @@ -19,7 +18,7 @@ const __circular = `circular`; const __controlLayer = `control-layer`; const __false = `false`; -const base = nkm.datacontrols.InspectorWidgetGroup; +const base = nkm.datacontrols.ControlFoldout; class LayerControl extends base { constructor() { super(); } @@ -34,50 +33,32 @@ class LayerControl extends base { super._Init(); this._flags.Add(this, __circular, __false, __controlLayer); - - this._builder.defaultControlClass = PropertyControl; - this._builder.defaultCSS = `control`; + //this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this.focusArea = this; } - _PostInit() { - super._PostInit(); - this._builder.host = this._body; - this._extExpand.Setup(this, this._body, this._expandIcon.element); - } - static _Style() { return nkm.style.Extends({ ':host': { - //'@': [`fade-in`], + //...nkm.style.rules.fadeIn, 'padding': '5px', 'margin-bottom': '5px', 'background-color': `rgba(127,127,127,0.25)`, }, ':host(.circular)': { - 'background-color': `rgba(var(--col-error-dark-rgb),0.25)`, + 'background-color': `rgba(var(--col-error-low-rgb),0.25)`, }, ':host(:not(.circular).control-layer)': { - 'background-color': `rgba(var(--col-infos-dark-rgb),0.25)`, + 'background-color': `rgba(var(--col-infos-low-rgb),0.25)`, }, ':host(.false) .label': { - 'text-decoration': 'line-through var(--col-error-dark)', + 'text-decoration': 'line-through var(--col-error-low)', }, ':host(.false)': { 'background-color': `rgba(127,127,127,0.1)` }, - '.body': { - 'display': 'flex', - 'width': `100%`, - 'flex-flow': 'row wrap', - 'align-content': 'flex-start', - }, - '.control': { - 'flex': '1 1 100%', - 'min-height': 0 - }, '.hdr': { 'margin': '5px 2px 5px 2px' }, @@ -152,9 +133,8 @@ class LayerControl extends base { }, ] }; - this._toolbar.visible = false; - this._label.ellipsis = true; + this._toolbar.visible = false; } diff --git a/app/js/widgets/layers-view.js b/app/js/widgets/layers-view.js index c1b10f0..1cc1a27 100644 --- a/app/js/widgets/layers-view.js +++ b/app/js/widgets/layers-view.js @@ -8,7 +8,6 @@ const mkfData = require(`../data`); const mkfOperations = require(`../operations`); const mkfActions = mkfOperations.actions; -const PropertyControl = require(`./property-control`); const LayerControl = require(`./layer-control`); const GlyphPicker = require(`./glyph-picker`); const SHARED_OPS = require("../operations/commands/shared-ops"); @@ -16,8 +15,6 @@ const SHARED_OPS = require("../operations/commands/shared-ops"); const __nolayer = `nolayer`; const __limitReached = `limit-reached`; - - const base = nkm.datacontrols.ControlView; class LayersView extends base { constructor() { super(); } @@ -30,7 +27,7 @@ class LayersView extends base { this._Bind(this._OpenPicker) - this._builder.defaultControlClass = PropertyControl; + this._builder.defaultControlClass = nkm.datacontrols.widgets.ValueControl; this._builder.defaultCSS = `control`; this._layerCtrls = []; @@ -54,18 +51,17 @@ class LayersView extends base { static _Style() { return nkm.style.Extends({ ':host': { - //'@': ['fade-in'], + //...nkm.style.rules.fadeIn, + ...nkm.style.flex.column, 'min-height': 'auto', 'min-width': 'auto', //'padding': '20px', - 'display': 'flex', - 'flex-flow': 'column nowrap', //'padding': '5px', 'margin-bottom': '5px', '--limit': `0.5`, }, '.control': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'margin': `3px`, 'user-select': 'none' }, @@ -76,7 +72,7 @@ class LayersView extends base { 'flex': '0 0 16px', }, '.label': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'text-align': 'center' }, '.label.limit': { order: -1, 'margin-bottom': `3px`, opacity: `var(--limit)` }, @@ -89,13 +85,12 @@ class LayersView extends base { 'margin': '3px' }, '.list': { - 'flex': '0 1 auto', + ...nkm.style.flex.column, + ...nkm.style.flexItem.shrink, 'width': `100%`, 'padding': `10px 0px`, 'border-top': `1px solid rgba(127,127,127,0.25)`, 'border-bottom': `1px solid rgba(127,127,127,0.25)`, - 'display': `flex`, - 'flex-flow': `column nowrap`, //'background-color':`rgba(19,19,19,0.25)`, 'border-radius': `3px` }, @@ -103,7 +98,7 @@ class LayersView extends base { 'height': '38px' }, '.item': { - 'flex': '0 1 auto', + ...nkm.style.flexItem.shrink, 'margin': `3px`, 'user-select': 'none', 'border-radius': '4px', @@ -186,7 +181,7 @@ class LayersView extends base { _CollapseAll() { if (!this._data) { return; } - this._data._layers.ForEach(lyr => { lyr.expanded = false; }); + this._data._layers.forEach(lyr => { lyr.expanded = false; }); this._layerCtrls.forEach(item => { item.Collapse(); }); } @@ -202,7 +197,7 @@ class LayersView extends base { this._RefreshLayerOrder(); return; } - this._data._layers.ForEach(lyr => { this._OnLayerAdded(this._data, lyr); }); + this._data._layers.forEach(lyr => { this._OnLayerAdded(this._data, lyr); }); this._AttachFragment(); //this._RefreshLayerOrder(); } @@ -307,7 +302,7 @@ class LayersView extends base { variant: ui.FLAGS.FRAME, flavor: ui.FLAGS.CTA, trigger: { fn: () => { - let datas = [...this._glyphPicker.content.selectionStack.data.stack._array]; + let datas = [...this._glyphPicker.content.selectionStack.data.stack]; if (datas.length > 0) { this._CreateLayersFromSelection(datas); } this._glyphPicker.Close(); } diff --git a/app/js/widgets/liga-button.js b/app/js/widgets/liga-button.js index 79222e6..3ee3aa3 100644 --- a/app/js/widgets/liga-button.js +++ b/app/js/widgets/liga-button.js @@ -19,20 +19,19 @@ class LigaButton extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, + ...nkm.style.flex.row, + ...nkm.style.flex.align.center.all, 'min-height': 'auto', 'min-width': 'auto', //'padding': '20px', - 'display': 'flex', - 'flex-direction': 'row', 'padding': '5px', 'margin-bottom': '5px', - 'align-items': `center`, 'padding-right': `15px`, 'padding-left': `15px` }, '.item': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin': `3px` }, '.counter': { @@ -42,7 +41,7 @@ class LigaButton extends base { 'flex': '0 0 16px', }, '.long-name': { - 'flex': '1 0 auto', + ...nkm.style.flexItem.grow, 'font-family': `monospace` } }, base._Style()); diff --git a/app/js/widgets/lists/item-uni-block.js b/app/js/widgets/lists/item-uni-block.js index a6c6b67..aa94123 100644 --- a/app/js/widgets/lists/item-uni-block.js +++ b/app/js/widgets/lists/item-uni-block.js @@ -27,7 +27,7 @@ class BlockItem extends base { static _Style() { return nkm.style.Extends({ ':host': { - + }, }, base._Style()); } diff --git a/app/js/widgets/lists/item-uni-cat-group.js b/app/js/widgets/lists/item-uni-cat-group.js index 88c3d95..e5f8d10 100644 --- a/app/js/widgets/lists/item-uni-cat-group.js +++ b/app/js/widgets/lists/item-uni-cat-group.js @@ -26,10 +26,8 @@ class CatGroupItem extends base { }, '.hint-ctnr': { - 'position': `relative`, - 'display': `flex`, - 'flex-flow': `column wrap`, - 'flex': `1 1 auto`, + ...nkm.style.flex.columns, + ...nkm.style.flexItem.fill, 'max-height': `8px`, 'grid-gap': `2px`, 'align-content': `flex-start`, diff --git a/app/js/widgets/lists/item-uni-cat.js b/app/js/widgets/lists/item-uni-cat.js index 6e3d627..865c082 100644 --- a/app/js/widgets/lists/item-uni-cat.js +++ b/app/js/widgets/lists/item-uni-cat.js @@ -25,7 +25,7 @@ class CatItem extends base { }, '.cat-hint': { - 'position': 'absolute', + ...nkm.style.rules.pos.abs, 'width': '4px', 'height': '4px', 'border-radius': '10px', diff --git a/app/js/widgets/pangram-renderer.js b/app/js/widgets/pangram-renderer.js index e1a95cd..12c76c6 100644 --- a/app/js/widgets/pangram-renderer.js +++ b/app/js/widgets/pangram-renderer.js @@ -15,8 +15,8 @@ class PangramRenderer extends base { _Init() { super._Init(); this._pointer - .Hook(ui.POINTER.MOUSE_LEFT, ui.POINTER.DOWN, this._Bind(this._StartSelection)) - .Hook(ui.POINTER.MOUSE_LEFT, ui.POINTER.RELEASE, this._Bind(this._EndSelection)); + .Hook(ui.POINTER.KEYS.MOUSE_LEFT, ui.POINTER.KEYS.DOWN, this._Bind(this._StartSelection)) + .Hook(ui.POINTER.KEYS.MOUSE_LEFT, ui.POINTER.KEYS.RELEASE, this._Bind(this._EndSelection)); this._ongoingSelection = false; this._highlightList = null; @@ -32,10 +32,8 @@ class PangramRenderer extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', - 'display': 'flex', + ...nkm.style.flex.column, 'box-sizing': 'border-box', - 'flex-flow': 'column nowrap', //'align-items':'center', 'justify-content': 'center', 'padding': '20px', @@ -64,7 +62,7 @@ class PangramRenderer extends base { }, '.high': { 'color': `white`, - 'background-color': `rgba(var(--col-active-dark-rgb), 0.5)`, + 'background-color': `rgba(var(--col-active-low-rgb), 0.5)`, 'border-radius': `2px`, } }, base._Style()); diff --git a/app/js/widgets/property-control.js b/app/js/widgets/property-control.js deleted file mode 100644 index 30df859..0000000 --- a/app/js/widgets/property-control.js +++ /dev/null @@ -1,325 +0,0 @@ -'use strict'; - -const nkm = require(`@nkmjs/core`); -const ui = nkm.ui; -const uilib = nkm.uilib; -const inputs = nkm.uilib.inputs; - -const mkfData = require(`../data`); -const mkfOperations = require(`../operations`); -const mkfCmds = mkfOperations.commands; - -const __flag_inherited = `inherited`; - -const base = nkm.datacontrols.ControlWidget; -class PropertyControl extends base { - constructor() { super(); } - - static __usePaintCallback = true; - - static __ppdata = (p_owner, p_data) => { - if (!p_data) { return null; } - if (p_owner._subData) { return p_data[p_owner._subData]; } - return p_data; - }; - - static __distribute = base.__distribute.Ext() - .To(`propertyId`, null, null) - .To(`subData`, null, null) - .To(`inputOnly`, null, false) - .To(`onSubmit`, `_onSubmitFn`, null) - .To(`invertInputOrder`, null, false) - .To(`directHidden`, `_directHidden`, false) - .To(`directSet`, `_directSet`, false) - .To(`command`, null, mkfCmds.SetProperty); - - _Init() { - super._Init(); - this._fallbackData = null; - this._valueID = null; - this._valueInfos = null; - this._input = null; - this._directSet = false; - this._directHidden = false; - this._subData = null; - - this._Bind(this._OnValueSubmit); - - this._flags.Add(this, __flag_inherited); - - this._onSubmitFn = null; - this._inherited = false; - this._inputOnly = false; - - this._dataPreProcessor = this.constructor.__ppdata; - this._inputOrder = 1; - } - - _PostInit() { - super._PostInit(); - //this.focusArea = this; - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - //'@': ['fade-in'], - 'position': 'relative', - //'border':'1px solid gray', - 'display': 'flex', - 'flex-flow': 'row nowrap', - 'align-items': 'center', - 'flex': '1 1 auto', - - 'margin': '0 2px 5px 2px', - }, - ':host(.selected)': { - 'background-color': 'rgba(127,127,127,0.25)' - }, - ':host(.input-first) .input-field': { 'flex': '0 0 auto' }, - ':host(.input-first) .label': { 'margin-left': '10px' }, - ':host(.inherited) .input-field, :host(.inherited) .label': { - //'pointer-events': 'none !important', - 'opacity': '0.8' - }, - '.label': { - 'white-space': 'nowrap', - 'flex': '1 1 50%' - }, - '.label:not(:first-child)': { - 'margin-left': `4px` - }, - ':host(.false) .label': { - 'text-decoration': 'line-through var(--col-error-dark)', - }, - '.label::after': { - 'content': '"🛈"', - //'position':'absolute', - 'margin-left': '3px', - //'margin-top':'-3px', - 'font-size': '12px', - 'opacity': '0.5' - }, - '.input-field': { - 'flex': '1 1 50%' - }, - '.nullify': { - //'width': '30px', - 'margin-right': '4px', - //'margin-left': '-4px' - }, - }, base._Style()); - } - - _Render() { - super._Render(); - - this._label = new ui.manipulators.Text(ui.dom.El(`span`, { class: `label` }, this._host), false, false); - this._label.ellipsis = true; - - this._nullifyBtn = this.Attach(nkm.uilib.buttons.Tool, `nullify`, this._host); - this._nullifyBtn.options = { - size: nkm.ui.FLAGS.SIZE_XS, trigger: { fn: this._Bind(this._NullifyValue) }, - htitle: `Link to Family Metrics.`, - icon: `link` - } - - } - - set subData(p_value) { - this._subData = p_value; - } - - set invertInputOrder(p_value) { - - if (p_value) { - this._label._element.style.order = `1`; - this._inputOrder = 0; - this.classList.add(`input-first`); - } else { - this._label._element.style.order = `0`; - this._inputOrder = 1; - this.classList.remove(`input-first`); - } - - if (this._input) { this._input.order = this._inputOrder; } - } - - set inputOnly(p_value) { - this._inputOnly = p_value; - if (p_value) { this._label._element.style.display = `none`; } - else { this._label._element.style.removeProperty(`display`); } - } - - get propertyId() { return this._valueID; } - set propertyId(p_id) { - - this._valueID = p_id; - this._valueInfos = mkfData.INFOS.Get(p_id); - - if (this._input) { - this._input.order = null; - this._input.Release(); - this._input = null; - } - - if (!p_id) { return; } - - this._label._element.setAttribute(`title`, this._valueInfos.desc); - this._label.Set(this._valueInfos.label || this._valueID); - - let inputType = null; - - this._input = this.Attach(this._valueInfos.inputType, `input-field`); - this._input.options = { - size: nkm.ui.FLAGS.SIZE_S, - onSubmit: { fn: this._OnValueSubmit }, - ...this._valueInfos.inputOptions - }; - - this._input.setAttribute(`title`, this._valueInfos.desc); - - this._input.order = this._inputOrder; - - } - - set isNullable(p_value) { - this._isNullable = p_value; - this._nullifyBtn.visible = p_value; - } - - get localValueObj() { - return this._data._values[this._valueID]; - } - - get localValue() { - if (!this._data) { return null; } - return this._data.Get(this._valueID); - } - - get exportedValue() { - if (!this._data) { return null; } - return this._data.Resolve(this._valueID); - } - - set command(p_value) { - this._cmd = p_value; - } - - set placeholderValue(p_value) { - this._input.placeholderValue = p_value; - } - - _OnDataChanged(p_oldData) { - super._OnDataChanged(p_oldData); - if (this._data) { - let dataObj = this.localValueObj; - this.isNullable = dataObj ? (`nullable` in dataObj) : false; - } else { - this.isNullable = false; - } - - if (this._directSet && this._directHidden) { this.visible = false; } - else { this.visible = true; } - - } - - _OnDataUpdated(p_data) { - - super._OnDataUpdated(p_data); - - this._inherited = this._isNullable ? this.localValueObj.value == null : false; - - this._flags.Set(__flag_inherited, this._inherited); - - if (this._inherited) { - this._input.currentValue = null; - if (this.exportedValue != null) { this._input.placeholderValue = this.exportedValue; } - this._nullifyBtn.icon = `font`; - this._nullifyBtn.disabled = true; - } else { - this._input.currentValue = this.localValue; - this._nullifyBtn.icon = `link`; - this._nullifyBtn.disabled = false; - } - - if(this.localValueObj.value == null && (this._valueInfos.inputOptions && this._valueInfos.inputOptions.nullPlaceholder)){ - this._input.placeholderValue = this._valueInfos.inputOptions.nullPlaceholder; - } - - // Red strikethrough on boolean input - this.classList.remove(`false`); - if (nkm.u.isInstanceOf(this._input, uilib.inputs.Boolean) || nkm.u.isInstanceOf(this._input, uilib.inputs.Checkbox)) { - if (!this._input.currentValue) { this.classList.add(`false`); } - } - - } - - _OnValueSubmit(p_input, p_value) { - - if (this._releasing || this._released || !this._data) { return; } - - if (this._directSet) { - this._data.Set(this._valueID, p_value); - return; - } - - if (this._onSubmitFn) { - this._onSubmitFn(this, this._valueID, p_value); - } else if (this._cmd) { - this._cmd.emitter = this; - this._cmd.inputValue = p_value; - this._cmd.Execute(); - } else { - this._data.Set(this._valueID, p_value); - } - } - - _NullifyValue(p_input) { - - let valueObj = this.localValueObj; - - if (this._directSet) { - valueObj.value = null; - this._data.CommitValueUpdate(this._valueID, valueObj, null, false); - return; - } - - if (valueObj.value == null) { return; } - - mkfCmds.SetProperty.emitter = this; - mkfCmds.SetProperty.inputValue = null; - mkfCmds.SetProperty.Execute(); - - } - - _CleanUp() { - - this.propertyId = null; - - this._onSubmitFn = null; - this._cmd = null; - - this._fallbackData = null; - this._valueID = null; - this._valueInfos = null; - this._directHidden = false; - this._directSet = false; - - this._flags.Set(__flag_inherited, false); - - this._onSubmitFn = null; - this._inherited = false; - this._inputOnly = false; - - this._inputOrder = 1; - - this._subData = null; - - super._CleanUp(); - } - -} - -module.exports = PropertyControl; -ui.Register(`mkf-property-control`, PropertyControl); \ No newline at end of file diff --git a/app/js/widgets/resource-binding.js b/app/js/widgets/resource-binding.js index 293971f..24c1a5e 100644 --- a/app/js/widgets/resource-binding.js +++ b/app/js/widgets/resource-binding.js @@ -20,18 +20,16 @@ class ResourceBinding extends base { static _Style() { return nkm.style.Extends({ ':host': { - '@': ['fade-in'], + ...nkm.style.rules.fadeIn, + ...nkm.style.flex.row, + ...nkm.style.flex.align.center.cross, 'min-height': 'auto', - 'min-width': '0', //'padding': '20px', - 'display': 'flex', - 'flex-direction': 'row nowrap', 'padding': '5px', 'margin-bottom': '5px', - 'align-items': `center` }, '.item': { - 'flex': '0 0 auto', + ...nkm.style.flexItem.fixed, 'margin': `3px`, 'user-select': 'none' }, @@ -42,7 +40,7 @@ class ResourceBinding extends base { 'flex': '0 0 16px', }, '.label': { - 'flex': '1 1 auto', + ...nkm.style.flexItem.fill, 'direction': 'rtl' }, '.btn': { diff --git a/app/js/widgets/search-status.js b/app/js/widgets/search-status.js index efee15d..75dfd53 100644 --- a/app/js/widgets/search-status.js +++ b/app/js/widgets/search-status.js @@ -11,14 +11,12 @@ class SearchStatus extends base { static _Style() { return nkm.style.Extends({ ':host': { - 'position': 'relative', + ...nkm.style.flex.column, //'min-height': '250px', //'height': '250px', 'min-width': '500px', 'width': '250px', //'padding': '20px', - 'display': 'flex', - 'flex-flow': 'column nowrap', 'padding-bottom': '5px', 'margin-bottom': '5px', //'border': '1px solid red', diff --git a/app/js/widgets/tr-layer-inspector.js b/app/js/widgets/tr-layer-inspector.js index 5381bfd..3c47700 100644 --- a/app/js/widgets/tr-layer-inspector.js +++ b/app/js/widgets/tr-layer-inspector.js @@ -10,18 +10,17 @@ const LOC = require(`../locales`); // Manages what is shown & selectable in the viewport. -const ControlHeader = require(`./control-header`); -const PropertyControl = require(`./property-control`); +const MiniHeader = nkm.datacontrols.widgets.MiniHeader; const isMANUAL = (owner) => { return owner.data.Get(mkfData.IDS.TR_LYR_SCALE_MODE) == mkfData.ENUMS.SCALE_MANUAL; }; const isNRM = (owner) => { return owner.data.Get(mkfData.IDS.TR_LYR_SCALE_MODE) == mkfData.ENUMS.SCALE_NORMALIZE; }; -const base = nkm.datacontrols.InspectorView; +const base = nkm.uilib.inspectors.ValueList; class LayerTransformSettingsInspector extends base { constructor() { super(); } static __controls = [ - + { options: { propertyId: mkfData.IDS.LYR_CHARACTER_NAME }, css: 'small' }, { cl: nkm.uilib.buttons.Tool, options: { @@ -35,17 +34,17 @@ class LayerTransformSettingsInspector extends base { } }, css: 'btn' }, - - { cl: ControlHeader, options: { label: `Context`, label2: `Layer` }, css: 'hdr' }, - { options: { propertyId: mkfData.IDS.TR_ANCHOR, inputOnly: true }, css: 'vvsmall' }, + + { cl: MiniHeader, options: { label: `Context`, label2: `Layer` }, css: 'hdr' }, + { options: { propertyId: mkfData.IDS.TR_ANCHOR, inputOnly: true }, css: 'xsmall' }, { options: { propertyId: mkfData.IDS.TR_LYR_BOUNDS_MODE, inputOnly: true }, css: 'small' }, - { options: { propertyId: mkfData.IDS.TR_LYR_SELF_ANCHOR, inputOnly: true }, css: 'vvsmall' }, + { options: { propertyId: mkfData.IDS.TR_LYR_SELF_ANCHOR, inputOnly: true }, css: 'xsmall' }, { options: { propertyId: mkfData.IDS.TR_BOUNDS_MODE, inputOnly: true }, css: 'small' }, //{ options: { propertyId: mkfData.IDS.TR_LYR_SCALE_MODE, inputOnly: true }, css: 'small' }, { options: { propertyId: mkfData.IDS.TR_LYR_SCALE_FACTOR }, css: 'full', requireData: true }, //, hideWhen: { fn: isMANUAL } - { cl: ControlHeader, options: { label: LOC.labelOffsets }, css: 'hdr', requireData: true }, + { cl: MiniHeader, options: { label: LOC.labelOffsets }, css: 'hdr', requireData: true }, { options: { propertyId: mkfData.IDS.TR_X_OFFSET }, requireData: true }, { options: { propertyId: mkfData.IDS.TR_Y_OFFSET }, requireData: true }, @@ -53,15 +52,15 @@ class LayerTransformSettingsInspector extends base { ]; static __trControls = [ - { cl: ControlHeader, options: { label: LOC.labelTr }, css: 'full' }, + { cl: MiniHeader, options: { label: LOC.labelTr }, css: 'full' }, { options: { propertyId: mkfData.IDS.TR_MIRROR, inputOnly: true }, css: 'full' }, { options: { propertyId: mkfData.IDS.TR_SKEW_ROT_ORDER }, css: `full` }, - { options: { propertyId: mkfData.IDS.TR_ROTATION_ANCHOR, inputOnly: true }, css: `vsmall` }, + { options: { propertyId: mkfData.IDS.TR_ROTATION_ANCHOR, inputOnly: true }, css: `xsmall` }, { options: { propertyId: mkfData.IDS.TR_ROTATION }, css: `large` }, { options: { propertyId: mkfData.IDS.TR_SKEW_X } }, { options: { propertyId: mkfData.IDS.TR_SKEW_Y } }, ]; - + static __exControls = [ { options: { propertyId: mkfData.IDS.LYR_CUSTOM_ID } }, { options: { propertyId: mkfData.IDS.INVERTED } }, @@ -69,80 +68,22 @@ class LayerTransformSettingsInspector extends base { { options: { propertyId: mkfData.IDS.LYR_IS_CONTROL_LAYER, command: mkfCmds.SetLayerControl, } },//directHidden: true ]; - _Init() { - super._Init(); - - this._builder.defaultControlClass = PropertyControl; - this._builder.defaultCSS = `control`; - - this._trBuilder = new nkm.datacontrols.helpers.ControlBuilder(this); - this._trBuilder.options = { cl: PropertyControl, css: `foldout-item` }; - this.forwardData.To(this._trBuilder); - this.forwardContext.To(this._trBuilder); - this.forwardEditor.To(this._trBuilder); - - this._exBuilder = new nkm.datacontrols.helpers.ControlBuilder(this); - this._exBuilder.options = { cl: PropertyControl, css: `foldout-item` }; - this.forwardData.To(this._exBuilder); - this.forwardContext.To(this._exBuilder); - this.forwardEditor.To(this._exBuilder); - - } - - static _Style() { - return nkm.style.Extends({ - ':host': { - //'@': ['fade-in'], - 'display': 'flex', - 'flex-flow': 'row wrap', - //'min-height': '0', - //'overflow': 'auto', - //'padding': '10px', - 'align-content': 'flex-start', - 'align-items': `center`, - }, - '.control': { - 'flex': '1 1 100%', - }, - '.small': { - 'flex': '1 1 45%' - }, - '.header': { - 'margin': '5px 2px 5px 2px' - }, - '.small': { 'flex': '1 1 25%' }, - '.vsmall': { 'flex': '1 1 15%' }, - '.vvsmall': { 'flex': '1 1 3%' }, - '.large': { 'flex': '1 1 75%' }, - '.btn': { - 'flex': '0 0 32px', - 'margin': '0 2px 5px 2px', - }, - '.drawer': { - 'padding': `10px`, - 'flex': '1 1 100%', - 'background-color': `rgba(19, 19, 19, 0.25)`, - 'border-radius': '4px', - 'margin-top':`4px` - } - }, base._Style()); - } - - _Render() { - - super._Render(); - - let foldout = this.Attach(nkm.uilib.widgets.Foldout, `control drawer foldout-item`, this._body); - foldout.options = { title: LOC.labelTrAdvanced, icon: `gear`, prefId: `lyr-advanced-tr`, expanded: false }; - this._trBuilder.host = foldout; - this._trBuilder.Build(this.constructor.__trControls); - - foldout = this.Attach(nkm.uilib.widgets.Foldout, `control drawer foldout-item`, this._body); - foldout.options = { title: LOC.labelSpecial, icon: `edit`, prefId: `lyr-advanced-ex`, expanded: false }; - this._exBuilder.host = foldout; - this._exBuilder.Build(this.constructor.__exControls); - - } + static __foldouts = [ + { + title: LOC.labelTrAdvanced, + icon: `gear`, + prefId: 'lyr-advanced-tr', + expanded: false, + controls: this.__trControls, + }, + { + title: LOC.labelSpecial, + icon: `edit`, + prefId: `lyr-advanced-ex`, + expanded: false, + controls: this.__exControls, + } + ]; } diff --git a/app/src-style/default/_animations.scss b/app/src-style/default/_animations.scss new file mode 100644 index 0000000..948963b --- /dev/null +++ b/app/src-style/default/_animations.scss @@ -0,0 +1,219 @@ +//////////// +/* Animations */ +//////////// + +@-webkit-keyframes rotating { + from { + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes rotating { + from { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.rotating-slow { + -webkit-animation: rotating 2s linear infinite; + -moz-animation: rotating 2s linear infinite; + -ms-animation: rotating 2s linear infinite; + -o-animation: rotating 2s linear infinite; + animation: rotating 2s linear infinite; +} + +.rotating-fast { + -webkit-animation: rotating 1s linear infinite; + -moz-animation: rotating 1s linear infinite; + -ms-animation: rotating 1s linear infinite; + -o-animation: rotating 1s linear infinite; + animation: rotating 1s linear infinite; +} + +@-webkit-keyframes rotating { + from { + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} + + +@keyframes alphaPulse { + from { + opacity: 0.4; + } +} + +:host(.alpha-pulse-slow), +.alpha-pulse-slow { + -webkit-animation: alphaPulse 2s ease-in-out infinite alternate; + -moz-animation: alphaPulse 2s ease-in-out infinite alternate; + -ms-animation: alphaPulse 2s ease-in-out infinite alternate; + -o-animation: alphaPulse 2s ease-in-out infinite alternate; + animation: alphaPulse 2s ease-in-out infinite alternate; +} + +:host(.alpha-pulse-fast), +.alpha-pulse-fast { + -webkit-animation: alphaPulse 1s ease-in-out infinite alternate; + -moz-animation: alphaPulse 1s ease-in-out infinite alternate; + -ms-animation: alphaPulse 1s ease-in-out infinite alternate; + -o-animation: alphaPulse 1s ease-in-out infinite alternate; + animation: alphaPulse 1s ease-in-out infinite alternate; +} + +.easeload { + opacity: 0; + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; +} + +@keyframes bgColorIn { + from { + background-color: rgba(var(#{$id_col_base_100}-rgb), 0); + } + + to { + background-color: var(--bg_color); + } +} + +@keyframes bgColorOut { + to { + background-color: rgba(var(#{$id_col_base_100}-rgb), 0); + } +} + + +@keyframes blurIn { + from { + backdrop-filter: blur(0); + } + + to { + backdrop-filter: blur(10px); + } +} + +@keyframes blurOut { + to { + backdrop-filter: blur(0); + } +} + +@keyframes scaleIn { + from { + @include box-shadow(20px, 0, 50px, 20px, rgba(0, 0, 0, 0)); + transform: translateY(-150%) perspective(800px) scale(1.1) rotateX(-50deg); + opacity: 0; + } + + to { + @include box-shadow(5px, 0, 10px, -5px, rgba(0, 0, 0, 1)); + transform: perspective(800px) scale(1) rotateX(0deg); + opacity: 1; + } +} + +@keyframes scaleOut { + to { + @include box-shadow(20px, 0, 50px, 20px, rgba(0, 0, 0, 0)); + transform: translateY(150%) perspective(800px) scale(1.1) rotateX(50deg); + opacity: 0; + } +} + +// Slide Ins + +@keyframes slideInLeft { + from { + transform: translateX(-150%); + } + + to { + transform: translateX(0%); + } +} + +@keyframes slideInRight { + from { + transform: translateX(150%); + } + + to { + transform: translateX(0%); + } +} + +@keyframes slideInTop { + from { + transform: translateY(-150%); + } + + to { + transform: translateY(0%); + } +} + +@keyframes slideInBottom { + from { + transform: translateY(150%); + } + + to { + transform: translateY(0%); + } +} + +@keyframes slideOutLeft { + to { + transform: translateX(-150%); + } +} + +@keyframes slideOutRight { + to { + transform: translateX(150%); + } +} + +@keyframes slideOutTop { + to { + transform: translateY(-150%); + } +} + +@keyframes slideOutBottom { + to { + transform: translateY(150%); + } +} diff --git a/app/src-style/default/_constants.scss b/app/src-style/default/_constants.scss index 3fabd95..7b65989 100644 --- a/app/src-style/default/_constants.scss +++ b/app/src-style/default/_constants.scss @@ -61,7 +61,6 @@ $BOTTOM: '.bottom'; /* Misc */ -$SHOWN: '.shown'; $NO_ICON: '.no-icon'; $NO_LABEL: '.no-label'; $NO_SCALE: '.no-scale'; diff --git a/app/src-style/default/_icons.scss b/app/src-style/default/_icons.scss index 4e85add..a6791fe 100644 --- a/app/src-style/default/_icons.scss +++ b/app/src-style/default/_icons.scss @@ -9,8 +9,34 @@ $icon-names: " // Include prefers_dark / prefers_light -@include for-each-in($icon-names) using ($i, $item){ - [data-icon="#{$item}"]{ +@include for-each-in($icon-names) using ($i, $item) { + [data-icon="#{$item}"] { background-image: url("#{nth($icon-paths, $i)}"); } +} + +@include prefers_dark { + + $icon-paths-dark: ""; + $icon-names-dark: ""; + + @include for-each-in($icon-names-dark) using ($i, $item) { + [data-icon="#{$item}"] { + background-image: url("#{nth($icon-paths-dark, $i)}"); + } + } + +} + +@include prefers_light { + + $icon-paths-light: ""; + $icon-names-light: ""; + + @include for-each-in($icon-names-light) using ($i, $item) { + [data-icon="#{$item}"] { + background-image: url("#{nth($icon-paths-light, $i)}"); + } + } + } \ No newline at end of file diff --git a/app/src-style/default/_mixins.scss b/app/src-style/default/_mixins.scss index 25c48c1..13aa610 100644 --- a/app/src-style/default/_mixins.scss +++ b/app/src-style/default/_mixins.scss @@ -66,14 +66,13 @@ @mixin box-shadow($top, $left, $blur, $size, $color) { -webkit-box-shadow: $left $top $blur $size $color; -moz-box-shadow: $left $top $blur $size $color; - box-shadow: $left $top $blur $size $color; + box-shadow: $left $top $blur $size $color; } @mixin drop-shadow($x, $y, $blur, $color) { filter: drop-shadow($x $y $blur $color); } - /* Presets */ @mixin no-select { @@ -96,10 +95,12 @@ position: absolute; width: 100%; height: 100%; - @if ( $padding==null) { + + @if ($padding==null) { top: 0; left: 0; } + @else { top: -$padding; left: -$padding; @@ -116,6 +117,7 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + @if $left { direction: rtl; text-align: left; @@ -129,9 +131,11 @@ #{$element+'::-webkit-scrollbar-track'} { background-color: rgba(127, 127, 127, 0.05); } + #{$element+'::-webkit-scrollbar-track-piece'} { background-color: rgba(0, 0, 0, 0); } + #{$element+'::-webkit-scrollbar-track-piece::before'} { content: ""; position: absolute; @@ -141,27 +145,33 @@ left: 50%; background-color: rgba(255, 0, 0, 1); } + #{$element+'::-webkit-scrollbar'} { width: $size; height: $size; background-color: rgba(127, 127, 127, 0.05); } + #{$element+'::-webkit-scrollbar-thumb'} { border-radius: 3px; background-color: rgba(255, 255, 255, 0.05); } + #{$element+'::-webkit-scrollbar-corner'} { border: none; display: none; background-color: rgba(255, 255, 255, 0.1); } + #{$element+':hover::-webkit-scrollbar-thumb'} { background-color: rgba(255, 255, 255, 0.15); } + #{$element+':hover::-webkit-scrollbar-thumb:hover'} { border-radius: 3px; background-color: rgba(255, 255, 255, 0.5); } + @if($hover_size !=null) { #{$element+':hover::-webkit-scrollbar'} { width: $hover_size; @@ -213,13 +223,16 @@ @for $i from 0 to length($selectorList) { $index: $i + 1; $selector: nth($selectorList, $index); + @if ($valueList==null) { #{$before+$selector+$after} { @content($index); } } + @else { $val: nth($valueList, $index); + #{$before+$selector+$after} { @include repeat-value($val, $properties...); @content($index, $val); @@ -232,13 +245,16 @@ @for $i from 0 to length($selectorList) { $index: $i + 1; $selector: nth($selectorList, $index); + @if ($valueList==null) { #{':host('+$before+$selector+$after+')'+$element} { @content($index); } } + @else { $val: nth($valueList, $index); + #{':host('+$before+$selector+$after+')'+$element} { @include repeat-value($val, $properties...); @content($index, $val); @@ -250,10 +266,52 @@ @mixin for-each-in($list) { @for $i from 0 to length($list) { $index: $i + 1; - @content( $index, nth($list, $index)); + @content($index, nth($list, $index)); } } +@mixin dotted-line-vertical($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to bottom, rgba($rgb, $alpha) $size, rgba($rgb, 0) 0%); + background-position: center; + background-size: $w $spread; + background-repeat: repeat-y; +} + +@mixin dotted-line-left($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to bottom, rgba($rgb, $alpha) $size, rgba($col, 0) 0%); + background-position: left; + background-size: $w $spread; + background-repeat: repeat-y; +} + +@mixin dotted-line-right($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to bottom, rgba($rgb, $alpha) $size, rgba($rgb, 0) 0%); + background-position: right; + background-size: $w $spread; + background-repeat: repeat-y; +} + +@mixin dotted-line-horizontal($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to left, rgba($rgb, $alpha) $size, rgba($rgb, 0) 0%); + background-position: center; + background-size: $spread $w; + background-repeat: repeat-x; +} + +@mixin dotted-line-top($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to left, rgba($rgb, $alpha) $size, rgba($rgb, 0) 0%); + background-position: top; + background-size: $spread $w; + background-repeat: repeat-x; +} + +@mixin dotted-line-bottom($rgb, $size: 10%, $w: 1px, $spread: 10px, $alpha:1) { + background-image: linear-gradient(to left, rgba($rgb, $alpha) $size, rgba($rgb, 0) 0%); + background-position: bottom; + background-size: $spread $w; + background-repeat: repeat-x; +} + /*----------------------------*/ /**/ /*----------------------------*/ diff --git a/app/src-style/default/_typography.scss b/app/src-style/default/_typography.scss index 9c26dc4..d0779f1 100644 --- a/app/src-style/default/_typography.scss +++ b/app/src-style/default/_typography.scss @@ -22,32 +22,32 @@ $family_regular: 'Regular', apple-system, BlinkMacSystemFont, "Segoe UI", Roboto font-family: $family_regular; - --font-size: var(#{$varname_font_size_s}); + --font-size: var(#{$id_font_size_s}); font-size: var(--font-size) !important; &.font-tag{ - --font-size: var(#{$varname_font_size_tag}); + --font-size: var(#{$id_font_size_tag}); text-transform: uppercase; } &.font-xsmall{ - --font-size: var(#{$varname_font_size_xxs}); + --font-size: var(#{$id_font_size_xxs}); } &.font-small{ - --font-size: var(#{$varname_font_size_xs}); + --font-size: var(#{$id_font_size_xs}); } &.font-medium{ - --font-size: var(#{$varname_font_size_m}); + --font-size: var(#{$id_font_size_m}); } &.font-large{ - --font-size: var(#{$varname_font_size_l}); + --font-size: var(#{$id_font_size_l}); } &.font-xlarge{ - --font-size: var(#{$varname_font_size_xl}); + --font-size: var(#{$id_font_size_xl}); } } @@ -64,7 +64,7 @@ $family_title: 'Title', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, " font-family: $family_title; - --font-size: var(#{$varname_font_size_s+'-title'}); + --font-size: var(#{$id_font_size_s+'-title'}); font-size: var(--font-size); text-transform: uppercase; @@ -73,28 +73,28 @@ $family_title: 'Title', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, " //text-shadow: 0 1px 0 #535353, 0 2px 0 #535353, 0 2px 2px rgba(0,0,0,0.5); &.font-tag{ - --font-size: var(#{$varname_font_size_tag+'-title'}); + --font-size: var(#{$id_font_size_tag+'-title'}); } &.font-xsmall{ - --font-size: var(#{$varname_font_size_xxs+'-title'}); + --font-size: var(#{$id_font_size_xxs+'-title'}); } &.font-small{ - --font-size: var(#{$varname_font_size_xs+'-title'}); + --font-size: var(#{$id_font_size_xs+'-title'}); } &.font-medium{ - --font-size: var(#{$varname_font_size_m+'-title'}); + --font-size: var(#{$id_font_size_m+'-title'}); } &.font-large{ - --font-size: var(#{$varname_font_size_l+'-title'}); + --font-size: var(#{$id_font_size_l+'-title'}); //text-shadow: 0 1px 0 #535353, 0 2px 0 #535353, 0 5px 2px rgba(0,0,0,0.5); } &.font-xlarge{ - --font-size: var(#{$varname_font_size_xl+'-title'}); + --font-size: var(#{$id_font_size_xl+'-title'}); //text-shadow: 0 1px 0 #535353, 0 2px 0 #535353, 0 5px 2px rgba(0,0,0,0.5); } diff --git a/app/src-style/default/_variables.scss b/app/src-style/default/_variables.scss index e8bbbff..ca80f10 100644 --- a/app/src-style/default/_variables.scss +++ b/app/src-style/default/_variables.scss @@ -7,9 +7,29 @@ $primary_dark: #393939; $primary_light: #e5e5e5; -$bg_dark: #191919; +$bg_dark: #191919; $bg_light: #f0f0f0; +$col_base_100_dark: rgb(10, 10, 10); +$col_base_200_dark: rgb(40, 40, 40); +$col_base_300_dark: rgb(50, 50, 50); +$col_base_400_dark: rgb(60, 60, 60); +$col_base_500_dark: rgb(110, 110, 110); +$col_base_600_dark: rgb(150, 150, 150); +$col_base_700_dark: rgb(170, 170, 170); +$col_base_800_dark: rgb(200, 200, 200); +$col_base_900_dark: rgb(230, 230, 230); + +$col_base_100_light: rgb(230, 230, 230); +$col_base_200_light: rgb(200, 200, 200); +$col_base_300_light: rgb(170, 170, 170); +$col_base_400_light: rgb(150, 150, 150); +$col_base_500_light: rgb(110, 110, 110); +$col_base_600_light: rgb(70, 70, 70); +$col_base_700_light: rgb(50, 50, 50); +$col_base_800_light: rgb(40, 40, 40); +$col_base_900_light: rgb(10, 10, 10); + //$col_error: rgb(226, 53, 0); //$col_loading: rgb(102, 119, 204); @@ -24,21 +44,31 @@ $col_waiting: rgb(102, 119, 204); $col_active: rgb(62, 193, 136); $col_input_bg: rgb(32, 32, 32); -$varname_col_infos: '--col-infos'; -$varname_col_warning: '--col-warning'; -$varname_col_error: '--col-error'; -$varname_col_ready: '--col-ready'; -$varname_col_dirty: '--col-dirty'; -$varname_col_loading: '--col-loading'; -$varname_col_processing: '--col-processing'; -$varname_col_waiting: '--col-waiting'; -$varname_col_active: '--col-active'; -$varname_col_cta: '--col-cta'; +$id_col_infos: '--col-infos'; +$id_col_warning: '--col-warning'; +$id_col_error: '--col-error'; +$id_col_ready: '--col-ready'; +$id_col_dirty: '--col-dirty'; +$id_col_loading: '--col-loading'; +$id_col_processing: '--col-processing'; +$id_col_waiting: '--col-waiting'; +$id_col_active: '--col-active'; +$id_col_cta: '--col-cta'; -$varname_col_input_bg: '--col-input-bg'; +$id_col_input_bg: '--col-input-bg'; $transition_opacity: opacity 0.1s ease; +$id_col_base_100: '--col-base-100'; +$id_col_base_200: '--col-base-200'; +$id_col_base_300: '--col-base-300'; +$id_col_base_400: '--col-base-400'; +$id_col_base_500: '--col-base-500'; +$id_col_base_600: '--col-base-600'; +$id_col_base_700: '--col-base-700'; +$id_col_base_800: '--col-base-800'; +$id_col_base_900: '--col-base-900'; + /////////// /* Sizes */ /////////// @@ -52,14 +82,14 @@ $size_xl: 108px; $size_fill: 100%; $size_custom: var(--custom-size, $size_m); -$varname_size_xxs: '--size-xxs'; -$varname_size_xs: '--size-xs'; -$varname_size_s: '--size-s'; -$varname_size_m: '--size-m'; -$varname_size_l: '--size-l'; -$varname_size_xl: '--size-xl'; -$varname_size_fill: '--size-fill'; -$varname_size_custom: '--size-custom'; +$id_size_xxs: '--size-xxs'; +$id_size_xs: '--size-xs'; +$id_size_s: '--size-s'; +$id_size_m: '--size-m'; +$id_size_l: '--size-l'; +$id_size_xl: '--size-xl'; +$id_size_fill: '--size-fill'; +$id_size_custom: '--size-custom'; //////////////// /* Font sizes */ @@ -73,13 +103,13 @@ $font_size_l: 1.65rem; $font_size_xl: 1.95rem; $font_size_tag: $font_size_xs * 0.75; -$varname_font_size_tag: '--font-size-tag'; -$varname_font_size_xxs: '--font-size-xxs'; -$varname_font_size_xs: '--font-size-xs'; -$varname_font_size_s: '--font-size-s'; -$varname_font_size_m: '--font-size-m'; -$varname_font_size_l: '--font-size-l'; -$varname_font_size_xl: '--font-size-xl'; +$id_font_size_tag: '--font-size-tag'; +$id_font_size_xxs: '--font-size-xxs'; +$id_font_size_xs: '--font-size-xs'; +$id_font_size_s: '--font-size-s'; +$id_font_size_m: '--font-size-m'; +$id_font_size_l: '--font-size-l'; +$id_font_size_xl: '--font-size-xl'; ///////////////// @@ -88,95 +118,126 @@ $varname_font_size_xl: '--font-size-xl'; ///////////////// ///////////////// +$col_flavors_ids: + $id_col_infos, + $id_col_warning, + $id_col_error; + +$col_base_dark: + $col_base_100_dark, + $col_base_200_dark, + $col_base_300_dark, + $col_base_400_dark, + $col_base_500_dark, + $col_base_600_dark, + $col_base_700_dark, + $col_base_800_dark, + $col_base_900_dark; + +$col_base_light: + $col_base_100_light, + $col_base_200_light, + $col_base_300_light, + $col_base_400_light, + $col_base_500_light, + $col_base_600_light, + $col_base_700_light, + $col_base_800_light, + $col_base_900_light; + +$col_base_ids: + $id_col_base_100, + $id_col_base_200, + $id_col_base_300, + $id_col_base_400, + $id_col_base_500, + $id_col_base_600, + $id_col_base_700, + $id_col_base_800, + $id_col_base_900; + // ----> Colors Presets //$FLAVORS: $INFOS, $WARNING, $ERROR; -$col_flavors: - $col_infos, - $col_warning, +$col_flavors: $col_infos, + $col_warning, $col_error; -$col_flavors_varnames: - $varname_col_infos, - $varname_col_warning, - $varname_col_error; - //$FLAVORS_EX: $INFOS, $WARNING, $ERROR, $READY, $DIRTY, $LOADING, $PROCESSING, $WAITING, $ACTIVE, $CTA; -$col_flavors_ex: - $col_infos, - $col_warning, - $col_error, - $col_ready, - $col_dirty, - $col_loading, - $col_processing, - $col_waiting, - $col_active, +$col_flavors_ex: $col_infos, + $col_warning, + $col_error, + $col_ready, + $col_dirty, + $col_loading, + $col_processing, + $col_waiting, + $col_active, $col_active; -$col_flavors_ex_varnames: - $varname_col_infos, - $varname_col_warning, - $varname_col_error, - $varname_col_ready, - $varname_col_dirty, - $varname_col_loading, - $varname_col_processing, - $varname_col_waiting, - $varname_col_active, - $varname_col_cta; - -$col_flavors_ex_bw: - contrast-color($col_infos), - contrast-color($col_warning), - contrast-color($col_error), - contrast-color($col_ready), - contrast-color($col_dirty), - contrast-color($col_loading), - contrast-color($col_processing), - contrast-color($col_waiting), - contrast-color($col_active), +$col_flavors_ex_ids: $id_col_infos, + $id_col_warning, + $id_col_error, + $id_col_ready, + $id_col_dirty, + $id_col_loading, + $id_col_processing, + $id_col_waiting, + $id_col_active, + $id_col_cta; + +$col_flavors_ex_bw: contrast-color($col_infos), + contrast-color($col_warning), + contrast-color($col_error), + contrast-color($col_ready), + contrast-color($col_dirty), + contrast-color($col_loading), + contrast-color($col_processing), + contrast-color($col_waiting), + contrast-color($col_active), contrast-color($col_active); // ----> Font size Presets -$font_size_values: - $font_size_tag, - $font_size_xxs, - $font_size_xs, - $font_size_s, - $font_size_m, - $font_size_l, +$font_size_values: + $font_size_tag, + $font_size_xxs, + $font_size_xs, + $font_size_s, + $font_size_m, + $font_size_l, $font_size_xl; -$font_size_varnames: - $varname_font_size_tag, - $varname_font_size_xxs, - $varname_font_size_xs, - $varname_font_size_s, - $varname_font_size_m, - $varname_font_size_l, - $varname_font_size_xl; + +$font_size_ids: + $id_font_size_tag, + $id_font_size_xxs, + $id_font_size_xs, + $id_font_size_s, + $id_font_size_m, + $id_font_size_l, + $id_font_size_xl; // ----> Sizes Presets $size_values: - $size_xxs, - $size_xs, - $size_s, - $size_m, - $size_l, - $size_xl, + $size_xxs, + $size_xs, + $size_s, + $size_m, + $size_l, + $size_xl, $size_fill, $size_custom; -$size_varnames: - $varname_size_xxs, - $varname_size_xs, - $varname_size_s, - $varname_size_m, - $varname_size_l, - $varname_size_xl, - $varname_size_fill, - $varname_size_custom; + +$size_ids: + $id_size_xxs, + $id_size_xs, + $id_size_s, + $id_size_m, + $id_size_l, + $id_size_xl, + $id_size_fill, + $id_size_custom; // Halves @@ -190,33 +251,34 @@ $size_fill_half: _round($size_fill*0.5); $size_custom_half: calc(var(--custom-size) * 0.5); $suffix: '-half'; -$varname_size_xxs_half: $varname_size_xxs+$suffix; -$varname_size_xs_half: $varname_size_xs+$suffix; -$varname_size_s_half: $varname_size_s+$suffix; -$varname_size_m_half: $varname_size_m+$suffix; -$varname_size_l_half: $varname_size_l+$suffix; -$varname_size_xl_half: $varname_size_xl+$suffix; -$varname_size_fill_half: $varname_size_fill+$suffix; -$varname_size_custom_half: $varname_size_custom+$suffix; +$id_size_xxs_half: $id_size_xxs+$suffix; +$id_size_xs_half: $id_size_xs+$suffix; +$id_size_s_half: $id_size_s+$suffix; +$id_size_m_half: $id_size_m+$suffix; +$id_size_l_half: $id_size_l+$suffix; +$id_size_xl_half: $id_size_xl+$suffix; +$id_size_fill_half: $id_size_fill+$suffix; +$id_size_custom_half: $id_size_custom+$suffix; $size_values_half: - $size_xxs_half, - $size_xs_half, - $size_s_half, - $size_m_half, - $size_l_half, - $size_xl_half, - $size_fill_half, + $size_xxs_half, + $size_xs_half, + $size_s_half, + $size_m_half, + $size_l_half, + $size_xl_half, + $size_fill_half, $size_custom_half; -$size_varnames_half: - $varname_size_xxs_half, - $varname_size_xs_half, - $varname_size_s_half, - $varname_size_m_half, - $varname_size_l_half, - $varname_size_xl_half, - $varname_size_fill_half, - $varname_size_custom_half; + +$size_ids_half: + $id_size_xxs_half, + $id_size_xs_half, + $id_size_s_half, + $id_size_m_half, + $id_size_l_half, + $id_size_xl_half, + $id_size_fill_half, + $id_size_custom_half; // Thirds @@ -230,34 +292,34 @@ $size_fill_third: _round($size_fill*0.333); $size_custom_third: calc(var(--custom-size) * 0.333); $suffix: '-third'; -$varname_size_xxs_third: $varname_size_xxs+$suffix; -$varname_size_xs_third: $varname_size_xs+$suffix; -$varname_size_s_third: $varname_size_s+$suffix; -$varname_size_m_third: $varname_size_m+$suffix; -$varname_size_l_third: $varname_size_l+$suffix; -$varname_size_xl_third: $varname_size_xl+$suffix; -$varname_size_fill_third: $varname_size_fill+$suffix; -$varname_size_custom_third: $varname_size_custom+$suffix; +$id_size_xxs_third: $id_size_xxs+$suffix; +$id_size_xs_third: $id_size_xs+$suffix; +$id_size_s_third: $id_size_s+$suffix; +$id_size_m_third: $id_size_m+$suffix; +$id_size_l_third: $id_size_l+$suffix; +$id_size_xl_third: $id_size_xl+$suffix; +$id_size_fill_third: $id_size_fill+$suffix; +$id_size_custom_third: $id_size_custom+$suffix; $size_values_third: - $size_xxs_third, - $size_xs_third, - $size_s_third, - $size_m_third, - $size_l_third, - $size_xl_third, - $size_fill_third, + $size_xxs_third, + $size_xs_third, + $size_s_third, + $size_m_third, + $size_l_third, + $size_xl_third, + $size_fill_third, $size_custom_third; -$size_varnames_third: - $varname_size_xxs_third, - $varname_size_xs_third, - $varname_size_s_third, - $varname_size_m_third, - $varname_size_l_third, - $varname_size_xl_third, - $varname_size_fill_third, - $varname_size_custom_third; +$size_ids_third: + $id_size_xxs_third, + $id_size_xs_third, + $id_size_s_third, + $id_size_m_third, + $id_size_l_third, + $id_size_xl_third, + $id_size_fill_third, + $id_size_custom_third; /*----------------------------*/ /**/ @@ -283,11 +345,11 @@ $short_states_ids: $tree_indent: 24px; $folder_indent: 24px; -$varname_tree_indent: '--tree-indent'; -$varname_tree_size: '--tree-size'; +$id_tree_indent: '--tree-indent'; +$id_tree_size: '--tree-size'; -$varname_folder_indent: '--folder-indent'; -$varname_folder_size: '--folder-size'; +$id_folder_indent: '--folder-indent'; +$id_folder_size: '--folder-size'; $overlay_bg_dark: rgba(#191919, 0.5); $overlay_bg_light: rgba(#f0f0f0, 0.5); @@ -295,8 +357,8 @@ $overlay_bg_light: rgba(#f0f0f0, 0.5); $drawer_bg_dark: #3d3d3d; $drawer_bg_light: #f0f0f0; -$varname_drawer_bg: '--col-drawer-bg'; -$varname_overlay_bg: '--col-overlay-bg'; +$id_drawer_bg: '--col-drawer-bg'; +$id_overlay_bg: '--col-overlay-bg'; /*-------------------------------------*/ /**/ @@ -308,8 +370,8 @@ $workspace_nav_bg_dark: rgba(#4d4d4d, 0.2); $workspace_bg_light: #f0f0f0; $workspace_nav_bg_light: rgba(#d8d8d8, 0.2); -$varname_workspace_bg: '--col-workspace-bg'; -$varname_workspace_nav_bg: '--col-workspace-nav-bg'; +$id_workspace_bg: '--col-workspace-bg'; +$id_workspace_nav_bg: '--col-workspace-nav-bg'; @@ -323,6 +385,6 @@ $workspace_nav_bg_dark: rgba(#4d4d4d, 0.2); $workspace_bg_light: #f0f0f0; $workspace_nav_bg_light: rgba(#d8d8d8, 0.2); -$varname_workspace_bg: '--col-workspace-bg'; -$varname_workspace_nav_bg: '--col-workspace-nav-bg'; +$id_workspace_bg: '--col-workspace-bg'; +$id_workspace_nav_bg: '--col-workspace-nav-bg'; diff --git a/app/src-style/default/assets/icons/icon_action.svg b/app/src-style/default/assets/icons/icon_action.svg index 0a539f4..5c0e61e 100644 --- a/app/src-style/default/assets/icons/icon_action.svg +++ b/app/src-style/default/assets/icons/icon_action.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_active.svg b/app/src-style/default/assets/icons/icon_active.svg index d075054..1fb58f0 100644 --- a/app/src-style/default/assets/icons/icon_active.svg +++ b/app/src-style/default/assets/icons/icon_active.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-hor-center.svg b/app/src-style/default/assets/icons/icon_align-hor-center.svg index 4b2be91..56dd111 100644 --- a/app/src-style/default/assets/icons/icon_align-hor-center.svg +++ b/app/src-style/default/assets/icons/icon_align-hor-center.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-hor-left.svg b/app/src-style/default/assets/icons/icon_align-hor-left.svg index c61cd68..9f47bd2 100644 --- a/app/src-style/default/assets/icons/icon_align-hor-left.svg +++ b/app/src-style/default/assets/icons/icon_align-hor-left.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-hor-right.svg b/app/src-style/default/assets/icons/icon_align-hor-right.svg index e62aab1..9e13447 100644 --- a/app/src-style/default/assets/icons/icon_align-hor-right.svg +++ b/app/src-style/default/assets/icons/icon_align-hor-right.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-ver-bottom.svg b/app/src-style/default/assets/icons/icon_align-ver-bottom.svg index 612d39d..cce09e7 100644 --- a/app/src-style/default/assets/icons/icon_align-ver-bottom.svg +++ b/app/src-style/default/assets/icons/icon_align-ver-bottom.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-ver-center.svg b/app/src-style/default/assets/icons/icon_align-ver-center.svg index aa85e03..83b9bad 100644 --- a/app/src-style/default/assets/icons/icon_align-ver-center.svg +++ b/app/src-style/default/assets/icons/icon_align-ver-center.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_align-ver-top.svg b/app/src-style/default/assets/icons/icon_align-ver-top.svg index c3e6150..d69cfc9 100644 --- a/app/src-style/default/assets/icons/icon_align-ver-top.svg +++ b/app/src-style/default/assets/icons/icon_align-ver-top.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_and.svg b/app/src-style/default/assets/icons/icon_and.svg index 47b9442..36be281 100644 --- a/app/src-style/default/assets/icons/icon_and.svg +++ b/app/src-style/default/assets/icons/icon_and.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_app-illustrator.svg b/app/src-style/default/assets/icons/icon_app-illustrator.svg index efaf88d..6bf257e 100644 --- a/app/src-style/default/assets/icons/icon_app-illustrator.svg +++ b/app/src-style/default/assets/icons/icon_app-illustrator.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_bounds-inside.svg b/app/src-style/default/assets/icons/icon_bounds-inside.svg index b6577f1..2e020f0 100644 --- a/app/src-style/default/assets/icons/icon_bounds-inside.svg +++ b/app/src-style/default/assets/icons/icon_bounds-inside.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_bounds-mixed-hor.svg b/app/src-style/default/assets/icons/icon_bounds-mixed-hor.svg index b802f66..fcf3eb0 100644 --- a/app/src-style/default/assets/icons/icon_bounds-mixed-hor.svg +++ b/app/src-style/default/assets/icons/icon_bounds-mixed-hor.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_bounds-mixed.svg b/app/src-style/default/assets/icons/icon_bounds-mixed.svg index e28bce0..78fd5d2 100644 --- a/app/src-style/default/assets/icons/icon_bounds-mixed.svg +++ b/app/src-style/default/assets/icons/icon_bounds-mixed.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_bounds-outside.svg b/app/src-style/default/assets/icons/icon_bounds-outside.svg index 1e1d2d7..78be576 100644 --- a/app/src-style/default/assets/icons/icon_bounds-outside.svg +++ b/app/src-style/default/assets/icons/icon_bounds-outside.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_case-capitalize.svg b/app/src-style/default/assets/icons/icon_case-capitalize.svg index 438f993..277de8a 100644 --- a/app/src-style/default/assets/icons/icon_case-capitalize.svg +++ b/app/src-style/default/assets/icons/icon_case-capitalize.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_case-lowercase.svg b/app/src-style/default/assets/icons/icon_case-lowercase.svg index c52285d..c43321f 100644 --- a/app/src-style/default/assets/icons/icon_case-lowercase.svg +++ b/app/src-style/default/assets/icons/icon_case-lowercase.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_case-sentence.svg b/app/src-style/default/assets/icons/icon_case-sentence.svg index 79ebf21..a499090 100644 --- a/app/src-style/default/assets/icons/icon_case-sentence.svg +++ b/app/src-style/default/assets/icons/icon_case-sentence.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_case-uppercase.svg b/app/src-style/default/assets/icons/icon_case-uppercase.svg index d244d4d..bf0e9a3 100644 --- a/app/src-style/default/assets/icons/icon_case-uppercase.svg +++ b/app/src-style/default/assets/icons/icon_case-uppercase.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_center-hor.svg b/app/src-style/default/assets/icons/icon_center-hor.svg index 81b15be..991c3b7 100644 --- a/app/src-style/default/assets/icons/icon_center-hor.svg +++ b/app/src-style/default/assets/icons/icon_center-hor.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_center-ver.svg b/app/src-style/default/assets/icons/icon_center-ver.svg index 116b508..40f3246 100644 --- a/app/src-style/default/assets/icons/icon_center-ver.svg +++ b/app/src-style/default/assets/icons/icon_center-ver.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_checkbox-mixed.svg b/app/src-style/default/assets/icons/icon_checkbox-mixed.svg index 80b6f16..c619c43 100644 --- a/app/src-style/default/assets/icons/icon_checkbox-mixed.svg +++ b/app/src-style/default/assets/icons/icon_checkbox-mixed.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_checkbox-off.svg b/app/src-style/default/assets/icons/icon_checkbox-off.svg index bd85e4c..7b3e66f 100644 --- a/app/src-style/default/assets/icons/icon_checkbox-off.svg +++ b/app/src-style/default/assets/icons/icon_checkbox-off.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_checkbox-on.svg b/app/src-style/default/assets/icons/icon_checkbox-on.svg index bfd6939..1517dea 100644 --- a/app/src-style/default/assets/icons/icon_checkbox-on.svg +++ b/app/src-style/default/assets/icons/icon_checkbox-on.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_checkbox-radio.svg b/app/src-style/default/assets/icons/icon_checkbox-radio.svg index 8645a23..b3095fe 100644 --- a/app/src-style/default/assets/icons/icon_checkbox-radio.svg +++ b/app/src-style/default/assets/icons/icon_checkbox-radio.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_clear.svg b/app/src-style/default/assets/icons/icon_clear.svg index f79402e..2552410 100644 --- a/app/src-style/default/assets/icons/icon_clear.svg +++ b/app/src-style/default/assets/icons/icon_clear.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_clipboard-read.svg b/app/src-style/default/assets/icons/icon_clipboard-read.svg index eee7640..621dfaa 100644 --- a/app/src-style/default/assets/icons/icon_clipboard-read.svg +++ b/app/src-style/default/assets/icons/icon_clipboard-read.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_clipboard-write.svg b/app/src-style/default/assets/icons/icon_clipboard-write.svg index c256eaa..8d7e683 100644 --- a/app/src-style/default/assets/icons/icon_clipboard-write.svg +++ b/app/src-style/default/assets/icons/icon_clipboard-write.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_clipboard.svg b/app/src-style/default/assets/icons/icon_clipboard.svg index 6af63ac..00064bd 100644 --- a/app/src-style/default/assets/icons/icon_clipboard.svg +++ b/app/src-style/default/assets/icons/icon_clipboard.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_close-small.svg b/app/src-style/default/assets/icons/icon_close-small.svg index bd8e33e..95d145f 100644 --- a/app/src-style/default/assets/icons/icon_close-small.svg +++ b/app/src-style/default/assets/icons/icon_close-small.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_close.svg b/app/src-style/default/assets/icons/icon_close.svg index 28cb093..20f18dc 100644 --- a/app/src-style/default/assets/icons/icon_close.svg +++ b/app/src-style/default/assets/icons/icon_close.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_cloud-download.svg b/app/src-style/default/assets/icons/icon_cloud-download.svg index 684c924..b59932d 100644 --- a/app/src-style/default/assets/icons/icon_cloud-download.svg +++ b/app/src-style/default/assets/icons/icon_cloud-download.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_cloud-upload.svg b/app/src-style/default/assets/icons/icon_cloud-upload.svg index e4519e0..29a4ab1 100644 --- a/app/src-style/default/assets/icons/icon_cloud-upload.svg +++ b/app/src-style/default/assets/icons/icon_cloud-upload.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_component-new.svg b/app/src-style/default/assets/icons/icon_component-new.svg index 042f8fb..2d2dc7a 100644 --- a/app/src-style/default/assets/icons/icon_component-new.svg +++ b/app/src-style/default/assets/icons/icon_component-new.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_component.svg b/app/src-style/default/assets/icons/icon_component.svg index 4c345bb..35ee59e 100644 --- a/app/src-style/default/assets/icons/icon_component.svg +++ b/app/src-style/default/assets/icons/icon_component.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_delete.svg b/app/src-style/default/assets/icons/icon_delete.svg index c280bf2..a58176b 100644 --- a/app/src-style/default/assets/icons/icon_delete.svg +++ b/app/src-style/default/assets/icons/icon_delete.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-download-small.svg b/app/src-style/default/assets/icons/icon_directory-download-small.svg index 6e84ebb..177c81d 100644 --- a/app/src-style/default/assets/icons/icon_directory-download-small.svg +++ b/app/src-style/default/assets/icons/icon_directory-download-small.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-download.svg b/app/src-style/default/assets/icons/icon_directory-download.svg index 78b8c28..96ad1fe 100644 --- a/app/src-style/default/assets/icons/icon_directory-download.svg +++ b/app/src-style/default/assets/icons/icon_directory-download.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-new.svg b/app/src-style/default/assets/icons/icon_directory-new.svg index 108ffac..fa21634 100644 --- a/app/src-style/default/assets/icons/icon_directory-new.svg +++ b/app/src-style/default/assets/icons/icon_directory-new.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-open.svg b/app/src-style/default/assets/icons/icon_directory-open.svg index 3895763..e67d964 100644 --- a/app/src-style/default/assets/icons/icon_directory-open.svg +++ b/app/src-style/default/assets/icons/icon_directory-open.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-search.svg b/app/src-style/default/assets/icons/icon_directory-search.svg index 6ae8164..1641f50 100644 --- a/app/src-style/default/assets/icons/icon_directory-search.svg +++ b/app/src-style/default/assets/icons/icon_directory-search.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-upload-small.svg b/app/src-style/default/assets/icons/icon_directory-upload-small.svg index 842916a..346624a 100644 --- a/app/src-style/default/assets/icons/icon_directory-upload-small.svg +++ b/app/src-style/default/assets/icons/icon_directory-upload-small.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory-upload.svg b/app/src-style/default/assets/icons/icon_directory-upload.svg index 2d5f963..0e30f0e 100644 --- a/app/src-style/default/assets/icons/icon_directory-upload.svg +++ b/app/src-style/default/assets/icons/icon_directory-upload.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_directory.svg b/app/src-style/default/assets/icons/icon_directory.svg index def5a48..1ba3cad 100644 --- a/app/src-style/default/assets/icons/icon_directory.svg +++ b/app/src-style/default/assets/icons/icon_directory.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_dirty.svg b/app/src-style/default/assets/icons/icon_dirty.svg index fbf0f63..dd2276a 100644 --- a/app/src-style/default/assets/icons/icon_dirty.svg +++ b/app/src-style/default/assets/icons/icon_dirty.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-download-small.svg b/app/src-style/default/assets/icons/icon_document-download-small.svg index 83423a8..5c29025 100644 --- a/app/src-style/default/assets/icons/icon_document-download-small.svg +++ b/app/src-style/default/assets/icons/icon_document-download-small.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-download.svg b/app/src-style/default/assets/icons/icon_document-download.svg index 6b1a799..5393554 100644 --- a/app/src-style/default/assets/icons/icon_document-download.svg +++ b/app/src-style/default/assets/icons/icon_document-download.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-edit.svg b/app/src-style/default/assets/icons/icon_document-edit.svg index 8c17552..3b158f5 100644 --- a/app/src-style/default/assets/icons/icon_document-edit.svg +++ b/app/src-style/default/assets/icons/icon_document-edit.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-link.svg b/app/src-style/default/assets/icons/icon_document-link.svg index ebcc960..1b1ea17 100644 --- a/app/src-style/default/assets/icons/icon_document-link.svg +++ b/app/src-style/default/assets/icons/icon_document-link.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-new.svg b/app/src-style/default/assets/icons/icon_document-new.svg index 7989d16..4e43aab 100644 --- a/app/src-style/default/assets/icons/icon_document-new.svg +++ b/app/src-style/default/assets/icons/icon_document-new.svg @@ -1,17 +1 @@ - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-search.svg b/app/src-style/default/assets/icons/icon_document-search.svg index 87f4c02..63b6055 100644 --- a/app/src-style/default/assets/icons/icon_document-search.svg +++ b/app/src-style/default/assets/icons/icon_document-search.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-upload-small.svg b/app/src-style/default/assets/icons/icon_document-upload-small.svg index f99dafa..08b9fba 100644 --- a/app/src-style/default/assets/icons/icon_document-upload-small.svg +++ b/app/src-style/default/assets/icons/icon_document-upload-small.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document-upload.svg b/app/src-style/default/assets/icons/icon_document-upload.svg index 82dc72b..354299c 100644 --- a/app/src-style/default/assets/icons/icon_document-upload.svg +++ b/app/src-style/default/assets/icons/icon_document-upload.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_document.svg b/app/src-style/default/assets/icons/icon_document.svg index c8b3ae4..ca3e192 100644 --- a/app/src-style/default/assets/icons/icon_document.svg +++ b/app/src-style/default/assets/icons/icon_document.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_dots-small.svg b/app/src-style/default/assets/icons/icon_dots-small.svg index 2c6a897..4a5d185 100644 --- a/app/src-style/default/assets/icons/icon_dots-small.svg +++ b/app/src-style/default/assets/icons/icon_dots-small.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_dots.svg b/app/src-style/default/assets/icons/icon_dots.svg index 77ca752..1a36185 100644 --- a/app/src-style/default/assets/icons/icon_dots.svg +++ b/app/src-style/default/assets/icons/icon_dots.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_down-short.svg b/app/src-style/default/assets/icons/icon_down-short.svg index ba65603..57bef08 100644 --- a/app/src-style/default/assets/icons/icon_down-short.svg +++ b/app/src-style/default/assets/icons/icon_down-short.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_down.svg b/app/src-style/default/assets/icons/icon_down.svg index 1bcc98f..e3fa532 100644 --- a/app/src-style/default/assets/icons/icon_down.svg +++ b/app/src-style/default/assets/icons/icon_down.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_download-alt.svg b/app/src-style/default/assets/icons/icon_download-alt.svg index a942352..e62105b 100644 --- a/app/src-style/default/assets/icons/icon_download-alt.svg +++ b/app/src-style/default/assets/icons/icon_download-alt.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_download.svg b/app/src-style/default/assets/icons/icon_download.svg index 0f282bd..baace9b 100644 --- a/app/src-style/default/assets/icons/icon_download.svg +++ b/app/src-style/default/assets/icons/icon_download.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_edit.svg b/app/src-style/default/assets/icons/icon_edit.svg index 6c5bd2a..33198b6 100644 --- a/app/src-style/default/assets/icons/icon_edit.svg +++ b/app/src-style/default/assets/icons/icon_edit.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_equal.svg b/app/src-style/default/assets/icons/icon_equal.svg index 59c4417..64e94ef 100644 --- a/app/src-style/default/assets/icons/icon_equal.svg +++ b/app/src-style/default/assets/icons/icon_equal.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_error.svg b/app/src-style/default/assets/icons/icon_error.svg index 6d965ea..2c369dc 100644 --- a/app/src-style/default/assets/icons/icon_error.svg +++ b/app/src-style/default/assets/icons/icon_error.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_expand.svg b/app/src-style/default/assets/icons/icon_expand.svg index 505d1e7..9c7055e 100644 --- a/app/src-style/default/assets/icons/icon_expand.svg +++ b/app/src-style/default/assets/icons/icon_expand.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-ascender.svg b/app/src-style/default/assets/icons/icon_font-ascender.svg index 808bda2..765a07c 100644 --- a/app/src-style/default/assets/icons/icon_font-ascender.svg +++ b/app/src-style/default/assets/icons/icon_font-ascender.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-baseline.svg b/app/src-style/default/assets/icons/icon_font-baseline.svg index 4cd5a04..6add84f 100644 --- a/app/src-style/default/assets/icons/icon_font-baseline.svg +++ b/app/src-style/default/assets/icons/icon_font-baseline.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-bounds-h.svg b/app/src-style/default/assets/icons/icon_font-bounds-h.svg index ed9110c..3632120 100644 --- a/app/src-style/default/assets/icons/icon_font-bounds-h.svg +++ b/app/src-style/default/assets/icons/icon_font-bounds-h.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-bounds-w.svg b/app/src-style/default/assets/icons/icon_font-bounds-w.svg index 35bd5b7..712eae5 100644 --- a/app/src-style/default/assets/icons/icon_font-bounds-w.svg +++ b/app/src-style/default/assets/icons/icon_font-bounds-w.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-bounds-xmax.svg b/app/src-style/default/assets/icons/icon_font-bounds-xmax.svg index 6bd6c23..36eef95 100644 --- a/app/src-style/default/assets/icons/icon_font-bounds-xmax.svg +++ b/app/src-style/default/assets/icons/icon_font-bounds-xmax.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-bounds-xmin.svg b/app/src-style/default/assets/icons/icon_font-bounds-xmin.svg index f58e6bb..569f0e1 100644 --- a/app/src-style/default/assets/icons/icon_font-bounds-xmin.svg +++ b/app/src-style/default/assets/icons/icon_font-bounds-xmin.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-bounds.svg b/app/src-style/default/assets/icons/icon_font-bounds.svg index f4b42b4..ca9a5a8 100644 --- a/app/src-style/default/assets/icons/icon_font-bounds.svg +++ b/app/src-style/default/assets/icons/icon_font-bounds.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-cap-height.svg b/app/src-style/default/assets/icons/icon_font-cap-height.svg index 757e2a5..4911ed7 100644 --- a/app/src-style/default/assets/icons/icon_font-cap-height.svg +++ b/app/src-style/default/assets/icons/icon_font-cap-height.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-descender.svg b/app/src-style/default/assets/icons/icon_font-descender.svg index 855ae4a..ab248f5 100644 --- a/app/src-style/default/assets/icons/icon_font-descender.svg +++ b/app/src-style/default/assets/icons/icon_font-descender.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font-x-height.svg b/app/src-style/default/assets/icons/icon_font-x-height.svg index 4190b53..8a66550 100644 --- a/app/src-style/default/assets/icons/icon_font-x-height.svg +++ b/app/src-style/default/assets/icons/icon_font-x-height.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_font.svg b/app/src-style/default/assets/icons/icon_font.svg index 82af39f..e1d5f69 100644 --- a/app/src-style/default/assets/icons/icon_font.svg +++ b/app/src-style/default/assets/icons/icon_font.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_gear.svg b/app/src-style/default/assets/icons/icon_gear.svg index 17a74b4..e581218 100644 --- a/app/src-style/default/assets/icons/icon_gear.svg +++ b/app/src-style/default/assets/icons/icon_gear.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_gears.svg b/app/src-style/default/assets/icons/icon_gears.svg index 311f29f..99cadf8 100644 --- a/app/src-style/default/assets/icons/icon_gears.svg +++ b/app/src-style/default/assets/icons/icon_gears.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_hidden.svg b/app/src-style/default/assets/icons/icon_hidden.svg index dec8afb..ab64eca 100644 --- a/app/src-style/default/assets/icons/icon_hidden.svg +++ b/app/src-style/default/assets/icons/icon_hidden.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_icon.svg b/app/src-style/default/assets/icons/icon_icon.svg index 189ea91..2b5d822 100644 --- a/app/src-style/default/assets/icons/icon_icon.svg +++ b/app/src-style/default/assets/icons/icon_icon.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_inferior-or-equal.svg b/app/src-style/default/assets/icons/icon_inferior-or-equal.svg index 50343e7..f160d71 100644 --- a/app/src-style/default/assets/icons/icon_inferior-or-equal.svg +++ b/app/src-style/default/assets/icons/icon_inferior-or-equal.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_inferior.svg b/app/src-style/default/assets/icons/icon_inferior.svg index e52cb66..24f6c05 100644 --- a/app/src-style/default/assets/icons/icon_inferior.svg +++ b/app/src-style/default/assets/icons/icon_inferior.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_infos.svg b/app/src-style/default/assets/icons/icon_infos.svg index 0a4b116..a74fa56 100644 --- a/app/src-style/default/assets/icons/icon_infos.svg +++ b/app/src-style/default/assets/icons/icon_infos.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_invalid.svg b/app/src-style/default/assets/icons/icon_invalid.svg index 3203a5f..4e7aa13 100644 --- a/app/src-style/default/assets/icons/icon_invalid.svg +++ b/app/src-style/default/assets/icons/icon_invalid.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_layout.svg b/app/src-style/default/assets/icons/icon_layout.svg index 4bc450d..d4d5c7c 100644 --- a/app/src-style/default/assets/icons/icon_layout.svg +++ b/app/src-style/default/assets/icons/icon_layout.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_left-short.svg b/app/src-style/default/assets/icons/icon_left-short.svg index 505d1e7..9c7055e 100644 --- a/app/src-style/default/assets/icons/icon_left-short.svg +++ b/app/src-style/default/assets/icons/icon_left-short.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_left.svg b/app/src-style/default/assets/icons/icon_left.svg index 073fd79..442e8bb 100644 --- a/app/src-style/default/assets/icons/icon_left.svg +++ b/app/src-style/default/assets/icons/icon_left.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_link-break.svg b/app/src-style/default/assets/icons/icon_link-break.svg index 706c799..c86a45a 100644 --- a/app/src-style/default/assets/icons/icon_link-break.svg +++ b/app/src-style/default/assets/icons/icon_link-break.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_link.svg b/app/src-style/default/assets/icons/icon_link.svg index 3db48ee..27eed15 100644 --- a/app/src-style/default/assets/icons/icon_link.svg +++ b/app/src-style/default/assets/icons/icon_link.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_load-arrow-small.svg b/app/src-style/default/assets/icons/icon_load-arrow-small.svg index d5445f0..0ecac4f 100644 --- a/app/src-style/default/assets/icons/icon_load-arrow-small.svg +++ b/app/src-style/default/assets/icons/icon_load-arrow-small.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_load-arrow.svg b/app/src-style/default/assets/icons/icon_load-arrow.svg index 2e3fd25..4f11112 100644 --- a/app/src-style/default/assets/icons/icon_load-arrow.svg +++ b/app/src-style/default/assets/icons/icon_load-arrow.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_loading.svg b/app/src-style/default/assets/icons/icon_loading.svg index 3723545..6039079 100644 --- a/app/src-style/default/assets/icons/icon_loading.svg +++ b/app/src-style/default/assets/icons/icon_loading.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_locked.svg b/app/src-style/default/assets/icons/icon_locked.svg index 9e740f8..461b6b6 100644 --- a/app/src-style/default/assets/icons/icon_locked.svg +++ b/app/src-style/default/assets/icons/icon_locked.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_ltr.svg b/app/src-style/default/assets/icons/icon_ltr.svg index 7001085..3d4aad2 100644 --- a/app/src-style/default/assets/icons/icon_ltr.svg +++ b/app/src-style/default/assets/icons/icon_ltr.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_minus.svg b/app/src-style/default/assets/icons/icon_minus.svg index 109eafa..f3d7b50 100644 --- a/app/src-style/default/assets/icons/icon_minus.svg +++ b/app/src-style/default/assets/icons/icon_minus.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_mirror-both.svg b/app/src-style/default/assets/icons/icon_mirror-both.svg index 1157c19..3d46cb7 100644 --- a/app/src-style/default/assets/icons/icon_mirror-both.svg +++ b/app/src-style/default/assets/icons/icon_mirror-both.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_mirror-hor.svg b/app/src-style/default/assets/icons/icon_mirror-hor.svg index a01b419..221ec92 100644 --- a/app/src-style/default/assets/icons/icon_mirror-hor.svg +++ b/app/src-style/default/assets/icons/icon_mirror-hor.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_mirror-ver.svg b/app/src-style/default/assets/icons/icon_mirror-ver.svg index 435a3b7..58e0109 100644 --- a/app/src-style/default/assets/icons/icon_mirror-ver.svg +++ b/app/src-style/default/assets/icons/icon_mirror-ver.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_new-small.svg b/app/src-style/default/assets/icons/icon_new-small.svg index ccce522..3083d47 100644 --- a/app/src-style/default/assets/icons/icon_new-small.svg +++ b/app/src-style/default/assets/icons/icon_new-small.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_new.svg b/app/src-style/default/assets/icons/icon_new.svg index 581fc5e..c03425d 100644 --- a/app/src-style/default/assets/icons/icon_new.svg +++ b/app/src-style/default/assets/icons/icon_new.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_orientation-landscape.svg b/app/src-style/default/assets/icons/icon_orientation-landscape.svg new file mode 100644 index 0000000..f681c70 --- /dev/null +++ b/app/src-style/default/assets/icons/icon_orientation-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_orientation-portrait.svg b/app/src-style/default/assets/icons/icon_orientation-portrait.svg new file mode 100644 index 0000000..9da915d --- /dev/null +++ b/app/src-style/default/assets/icons/icon_orientation-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-bottom-left.svg b/app/src-style/default/assets/icons/icon_placement-bottom-left.svg index e197c25..04bdb10 100644 --- a/app/src-style/default/assets/icons/icon_placement-bottom-left.svg +++ b/app/src-style/default/assets/icons/icon_placement-bottom-left.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-bottom-right.svg b/app/src-style/default/assets/icons/icon_placement-bottom-right.svg index de15485..4b7a236 100644 --- a/app/src-style/default/assets/icons/icon_placement-bottom-right.svg +++ b/app/src-style/default/assets/icons/icon_placement-bottom-right.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-bottom.svg b/app/src-style/default/assets/icons/icon_placement-bottom.svg index f3854ed..bae411e 100644 --- a/app/src-style/default/assets/icons/icon_placement-bottom.svg +++ b/app/src-style/default/assets/icons/icon_placement-bottom.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-center.svg b/app/src-style/default/assets/icons/icon_placement-center.svg index b517de0..d66e3f9 100644 --- a/app/src-style/default/assets/icons/icon_placement-center.svg +++ b/app/src-style/default/assets/icons/icon_placement-center.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-left.svg b/app/src-style/default/assets/icons/icon_placement-left.svg index 628ee8c..b794395 100644 --- a/app/src-style/default/assets/icons/icon_placement-left.svg +++ b/app/src-style/default/assets/icons/icon_placement-left.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-right.svg b/app/src-style/default/assets/icons/icon_placement-right.svg index fefa89f..a69300d 100644 --- a/app/src-style/default/assets/icons/icon_placement-right.svg +++ b/app/src-style/default/assets/icons/icon_placement-right.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-top-left.svg b/app/src-style/default/assets/icons/icon_placement-top-left.svg index 00152eb..08a4865 100644 --- a/app/src-style/default/assets/icons/icon_placement-top-left.svg +++ b/app/src-style/default/assets/icons/icon_placement-top-left.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-top-right.svg b/app/src-style/default/assets/icons/icon_placement-top-right.svg index 2fb35e0..1a75f7e 100644 --- a/app/src-style/default/assets/icons/icon_placement-top-right.svg +++ b/app/src-style/default/assets/icons/icon_placement-top-right.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement-top.svg b/app/src-style/default/assets/icons/icon_placement-top.svg index 4ad17be..58ef35a 100644 --- a/app/src-style/default/assets/icons/icon_placement-top.svg +++ b/app/src-style/default/assets/icons/icon_placement-top.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_placement.svg b/app/src-style/default/assets/icons/icon_placement.svg index 3f6719d..86fb6fc 100644 --- a/app/src-style/default/assets/icons/icon_placement.svg +++ b/app/src-style/default/assets/icons/icon_placement.svg @@ -1,23 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_plus.svg b/app/src-style/default/assets/icons/icon_plus.svg index 0abeedd..aae9b79 100644 --- a/app/src-style/default/assets/icons/icon_plus.svg +++ b/app/src-style/default/assets/icons/icon_plus.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_processing.svg b/app/src-style/default/assets/icons/icon_processing.svg index 59e6295..ebb7f00 100644 --- a/app/src-style/default/assets/icons/icon_processing.svg +++ b/app/src-style/default/assets/icons/icon_processing.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_ready.svg b/app/src-style/default/assets/icons/icon_ready.svg index 883d108..12cfea2 100644 --- a/app/src-style/default/assets/icons/icon_ready.svg +++ b/app/src-style/default/assets/icons/icon_ready.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_refresh.svg b/app/src-style/default/assets/icons/icon_refresh.svg index ea29308..808be8f 100644 --- a/app/src-style/default/assets/icons/icon_refresh.svg +++ b/app/src-style/default/assets/icons/icon_refresh.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_remove.svg b/app/src-style/default/assets/icons/icon_remove.svg index d4fbff2..b111620 100644 --- a/app/src-style/default/assets/icons/icon_remove.svg +++ b/app/src-style/default/assets/icons/icon_remove.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_reset.svg b/app/src-style/default/assets/icons/icon_reset.svg index 1102b98..39449ce 100644 --- a/app/src-style/default/assets/icons/icon_reset.svg +++ b/app/src-style/default/assets/icons/icon_reset.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_right-short.svg b/app/src-style/default/assets/icons/icon_right-short.svg index 5aad130..254cf25 100644 --- a/app/src-style/default/assets/icons/icon_right-short.svg +++ b/app/src-style/default/assets/icons/icon_right-short.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_right.svg b/app/src-style/default/assets/icons/icon_right.svg index aeba595..ec654bc 100644 --- a/app/src-style/default/assets/icons/icon_right.svg +++ b/app/src-style/default/assets/icons/icon_right.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_rtl.svg b/app/src-style/default/assets/icons/icon_rtl.svg index 12e12ce..ef6d135 100644 --- a/app/src-style/default/assets/icons/icon_rtl.svg +++ b/app/src-style/default/assets/icons/icon_rtl.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_save-small.svg b/app/src-style/default/assets/icons/icon_save-small.svg index 5ce1eb3..aab33bf 100644 --- a/app/src-style/default/assets/icons/icon_save-small.svg +++ b/app/src-style/default/assets/icons/icon_save-small.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_save.svg b/app/src-style/default/assets/icons/icon_save.svg index 8129a8f..8e5e812 100644 --- a/app/src-style/default/assets/icons/icon_save.svg +++ b/app/src-style/default/assets/icons/icon_save.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_scale.svg b/app/src-style/default/assets/icons/icon_scale.svg index 3453bc0..a30493d 100644 --- a/app/src-style/default/assets/icons/icon_scale.svg +++ b/app/src-style/default/assets/icons/icon_scale.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_search-small.svg b/app/src-style/default/assets/icons/icon_search-small.svg index 992f31e..54aeb17 100644 --- a/app/src-style/default/assets/icons/icon_search-small.svg +++ b/app/src-style/default/assets/icons/icon_search-small.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_search.svg b/app/src-style/default/assets/icons/icon_search.svg index 11431fe..10e866a 100644 --- a/app/src-style/default/assets/icons/icon_search.svg +++ b/app/src-style/default/assets/icons/icon_search.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_shortcut.svg b/app/src-style/default/assets/icons/icon_shortcut.svg index 712225e..8aa5411 100644 --- a/app/src-style/default/assets/icons/icon_shortcut.svg +++ b/app/src-style/default/assets/icons/icon_shortcut.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_spread-hor.svg b/app/src-style/default/assets/icons/icon_spread-hor.svg index 570bea5..1ee863c 100644 --- a/app/src-style/default/assets/icons/icon_spread-hor.svg +++ b/app/src-style/default/assets/icons/icon_spread-hor.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_spread-ver.svg b/app/src-style/default/assets/icons/icon_spread-ver.svg index f5faeaf..790e98c 100644 --- a/app/src-style/default/assets/icons/icon_spread-ver.svg +++ b/app/src-style/default/assets/icons/icon_spread-ver.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_superior-or-equal.svg b/app/src-style/default/assets/icons/icon_superior-or-equal.svg index 23c8126..7260bf0 100644 --- a/app/src-style/default/assets/icons/icon_superior-or-equal.svg +++ b/app/src-style/default/assets/icons/icon_superior-or-equal.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_superior.svg b/app/src-style/default/assets/icons/icon_superior.svg index 9272acd..e44eadc 100644 --- a/app/src-style/default/assets/icons/icon_superior.svg +++ b/app/src-style/default/assets/icons/icon_superior.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-center.svg b/app/src-style/default/assets/icons/icon_text-align-center.svg index 4dda803..774022d 100644 --- a/app/src-style/default/assets/icons/icon_text-align-center.svg +++ b/app/src-style/default/assets/icons/icon_text-align-center.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-justifiy-center.svg b/app/src-style/default/assets/icons/icon_text-align-justifiy-center.svg index 70282f3..74fdcd0 100644 --- a/app/src-style/default/assets/icons/icon_text-align-justifiy-center.svg +++ b/app/src-style/default/assets/icons/icon_text-align-justifiy-center.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-justifiy-left.svg b/app/src-style/default/assets/icons/icon_text-align-justifiy-left.svg index de2da6b..5706ef5 100644 --- a/app/src-style/default/assets/icons/icon_text-align-justifiy-left.svg +++ b/app/src-style/default/assets/icons/icon_text-align-justifiy-left.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-justifiy-right.svg b/app/src-style/default/assets/icons/icon_text-align-justifiy-right.svg index 7aca0c5..d858842 100644 --- a/app/src-style/default/assets/icons/icon_text-align-justifiy-right.svg +++ b/app/src-style/default/assets/icons/icon_text-align-justifiy-right.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-justify.svg b/app/src-style/default/assets/icons/icon_text-align-justify.svg index bcbfe65..e8be8e3 100644 --- a/app/src-style/default/assets/icons/icon_text-align-justify.svg +++ b/app/src-style/default/assets/icons/icon_text-align-justify.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-left.svg b/app/src-style/default/assets/icons/icon_text-align-left.svg index 10ef616..3100251 100644 --- a/app/src-style/default/assets/icons/icon_text-align-left.svg +++ b/app/src-style/default/assets/icons/icon_text-align-left.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-align-right.svg b/app/src-style/default/assets/icons/icon_text-align-right.svg index 4131ab1..e7c606e 100644 --- a/app/src-style/default/assets/icons/icon_text-align-right.svg +++ b/app/src-style/default/assets/icons/icon_text-align-right.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-direction-ltr.svg b/app/src-style/default/assets/icons/icon_text-direction-ltr.svg index 536c5fe..97072a5 100644 --- a/app/src-style/default/assets/icons/icon_text-direction-ltr.svg +++ b/app/src-style/default/assets/icons/icon_text-direction-ltr.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-direction-rtl.svg b/app/src-style/default/assets/icons/icon_text-direction-rtl.svg index fab5b4e..e036fce 100644 --- a/app/src-style/default/assets/icons/icon_text-direction-rtl.svg +++ b/app/src-style/default/assets/icons/icon_text-direction-rtl.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-em.svg b/app/src-style/default/assets/icons/icon_text-em.svg index 0a009a0..6a01dd3 100644 --- a/app/src-style/default/assets/icons/icon_text-em.svg +++ b/app/src-style/default/assets/icons/icon_text-em.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-liga-new.svg b/app/src-style/default/assets/icons/icon_text-liga-new.svg index 4a4e6f2..bf2728f 100644 --- a/app/src-style/default/assets/icons/icon_text-liga-new.svg +++ b/app/src-style/default/assets/icons/icon_text-liga-new.svg @@ -1,19 +1 @@ - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-liga.svg b/app/src-style/default/assets/icons/icon_text-liga.svg index 6c5bf21..df371a9 100644 --- a/app/src-style/default/assets/icons/icon_text-liga.svg +++ b/app/src-style/default/assets/icons/icon_text-liga.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-style.svg b/app/src-style/default/assets/icons/icon_text-style.svg index dfde100..3996008 100644 --- a/app/src-style/default/assets/icons/icon_text-style.svg +++ b/app/src-style/default/assets/icons/icon_text-style.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-unicode-char.svg b/app/src-style/default/assets/icons/icon_text-unicode-char.svg index 058949d..29bab09 100644 --- a/app/src-style/default/assets/icons/icon_text-unicode-char.svg +++ b/app/src-style/default/assets/icons/icon_text-unicode-char.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text-unicode.svg b/app/src-style/default/assets/icons/icon_text-unicode.svg index 4d35484..2d0a45e 100644 --- a/app/src-style/default/assets/icons/icon_text-unicode.svg +++ b/app/src-style/default/assets/icons/icon_text-unicode.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_text.svg b/app/src-style/default/assets/icons/icon_text.svg index 140b9f6..015dfdc 100644 --- a/app/src-style/default/assets/icons/icon_text.svg +++ b/app/src-style/default/assets/icons/icon_text.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_three-lines.svg b/app/src-style/default/assets/icons/icon_three-lines.svg index 2fe54d7..1889d66 100644 --- a/app/src-style/default/assets/icons/icon_three-lines.svg +++ b/app/src-style/default/assets/icons/icon_three-lines.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_unequal.svg b/app/src-style/default/assets/icons/icon_unequal.svg index 27d31b2..0485cf8 100644 --- a/app/src-style/default/assets/icons/icon_unequal.svg +++ b/app/src-style/default/assets/icons/icon_unequal.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_unlocked.svg b/app/src-style/default/assets/icons/icon_unlocked.svg index 4f0c174..f278162 100644 --- a/app/src-style/default/assets/icons/icon_unlocked.svg +++ b/app/src-style/default/assets/icons/icon_unlocked.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_up-short.svg b/app/src-style/default/assets/icons/icon_up-short.svg index 19cb7be..b3b4ffd 100644 --- a/app/src-style/default/assets/icons/icon_up-short.svg +++ b/app/src-style/default/assets/icons/icon_up-short.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_up.svg b/app/src-style/default/assets/icons/icon_up.svg index 0aac5d5..96abd95 100644 --- a/app/src-style/default/assets/icons/icon_up.svg +++ b/app/src-style/default/assets/icons/icon_up.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_upload-alt.svg b/app/src-style/default/assets/icons/icon_upload-alt.svg index 52da8f6..8705c68 100644 --- a/app/src-style/default/assets/icons/icon_upload-alt.svg +++ b/app/src-style/default/assets/icons/icon_upload-alt.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_upload.svg b/app/src-style/default/assets/icons/icon_upload.svg index 6909bad..90b03ad 100644 --- a/app/src-style/default/assets/icons/icon_upload.svg +++ b/app/src-style/default/assets/icons/icon_upload.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_valid.svg b/app/src-style/default/assets/icons/icon_valid.svg index dea14be..1437ea5 100644 --- a/app/src-style/default/assets/icons/icon_valid.svg +++ b/app/src-style/default/assets/icons/icon_valid.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_view-grid.svg b/app/src-style/default/assets/icons/icon_view-grid.svg index ea92fc6..d51a25d 100644 --- a/app/src-style/default/assets/icons/icon_view-grid.svg +++ b/app/src-style/default/assets/icons/icon_view-grid.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_view-list.svg b/app/src-style/default/assets/icons/icon_view-list.svg index d3568c6..d245ba7 100644 --- a/app/src-style/default/assets/icons/icon_view-list.svg +++ b/app/src-style/default/assets/icons/icon_view-list.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_view-timeline.svg b/app/src-style/default/assets/icons/icon_view-timeline.svg index 4d13f2d..99185e4 100644 --- a/app/src-style/default/assets/icons/icon_view-timeline.svg +++ b/app/src-style/default/assets/icons/icon_view-timeline.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_visible.svg b/app/src-style/default/assets/icons/icon_visible.svg index f04b2a9..4b93728 100644 --- a/app/src-style/default/assets/icons/icon_visible.svg +++ b/app/src-style/default/assets/icons/icon_visible.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_waiting.svg b/app/src-style/default/assets/icons/icon_waiting.svg index 59e6295..ebb7f00 100644 --- a/app/src-style/default/assets/icons/icon_waiting.svg +++ b/app/src-style/default/assets/icons/icon_waiting.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/icon_warning.svg b/app/src-style/default/assets/icons/icon_warning.svg index a970b6c..52d69a1 100644 --- a/app/src-style/default/assets/icons/icon_warning.svg +++ b/app/src-style/default/assets/icons/icon_warning.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_action.svg b/app/src-style/default/assets/icons/prefers-dark/icon_action.svg new file mode 100644 index 0000000..8912beb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_action.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_active.svg b/app/src-style/default/assets/icons/prefers-dark/icon_active.svg new file mode 100644 index 0000000..6f4c14b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_active.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-center.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-center.svg new file mode 100644 index 0000000..2b3b824 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-left.svg new file mode 100644 index 0000000..75a1392 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-right.svg new file mode 100644 index 0000000..c0d30d3 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-hor-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-bottom.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-bottom.svg new file mode 100644 index 0000000..7a4ad8d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-center.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-center.svg new file mode 100644 index 0000000..3097242 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-top.svg b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-top.svg new file mode 100644 index 0000000..6067314 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_align-ver-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_and.svg b/app/src-style/default/assets/icons/prefers-dark/icon_and.svg new file mode 100644 index 0000000..8d44e40 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_and.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_app-illustrator.svg b/app/src-style/default/assets/icons/prefers-dark/icon_app-illustrator.svg new file mode 100644 index 0000000..82484f0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_app-illustrator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_bounds-inside.svg b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-inside.svg new file mode 100644 index 0000000..b9a5d11 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-inside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed-hor.svg b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed-hor.svg new file mode 100644 index 0000000..f5337eb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed.svg b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed.svg new file mode 100644 index 0000000..d703c34 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-mixed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_bounds-outside.svg b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-outside.svg new file mode 100644 index 0000000..67a2fb3 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_bounds-outside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_case-capitalize.svg b/app/src-style/default/assets/icons/prefers-dark/icon_case-capitalize.svg new file mode 100644 index 0000000..fdc8b7b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_case-capitalize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_case-lowercase.svg b/app/src-style/default/assets/icons/prefers-dark/icon_case-lowercase.svg new file mode 100644 index 0000000..79062d1 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_case-lowercase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_case-sentence.svg b/app/src-style/default/assets/icons/prefers-dark/icon_case-sentence.svg new file mode 100644 index 0000000..ed0b088 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_case-sentence.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_case-uppercase.svg b/app/src-style/default/assets/icons/prefers-dark/icon_case-uppercase.svg new file mode 100644 index 0000000..ee5c791 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_case-uppercase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_center-hor.svg b/app/src-style/default/assets/icons/prefers-dark/icon_center-hor.svg new file mode 100644 index 0000000..b8b94be --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_center-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_center-ver.svg b/app/src-style/default/assets/icons/prefers-dark/icon_center-ver.svg new file mode 100644 index 0000000..4828070 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_center-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-mixed.svg b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-mixed.svg new file mode 100644 index 0000000..ba06e6e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-mixed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-off.svg b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-off.svg new file mode 100644 index 0000000..622a0d1 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-on.svg b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-on.svg new file mode 100644 index 0000000..f2fb414 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-radio.svg b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-radio.svg new file mode 100644 index 0000000..34bc3a5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_checkbox-radio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_clear.svg b/app/src-style/default/assets/icons/prefers-dark/icon_clear.svg new file mode 100644 index 0000000..f06948c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-read.svg b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-read.svg new file mode 100644 index 0000000..9942823 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-write.svg b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-write.svg new file mode 100644 index 0000000..4d297fc --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard-write.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_clipboard.svg b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard.svg new file mode 100644 index 0000000..ea82a80 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_close-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_close-small.svg new file mode 100644 index 0000000..0a82943 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_close-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_close.svg b/app/src-style/default/assets/icons/prefers-dark/icon_close.svg new file mode 100644 index 0000000..fdb0f3b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_cloud-download.svg b/app/src-style/default/assets/icons/prefers-dark/icon_cloud-download.svg new file mode 100644 index 0000000..7f8692c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_cloud-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_cloud-upload.svg b/app/src-style/default/assets/icons/prefers-dark/icon_cloud-upload.svg new file mode 100644 index 0000000..f4101a4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_cloud-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_component-new.svg b/app/src-style/default/assets/icons/prefers-dark/icon_component-new.svg new file mode 100644 index 0000000..6024589 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_component-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_component.svg b/app/src-style/default/assets/icons/prefers-dark/icon_component.svg new file mode 100644 index 0000000..bc5c5ef --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_delete.svg b/app/src-style/default/assets/icons/prefers-dark/icon_delete.svg new file mode 100644 index 0000000..1a044c2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-download-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-download-small.svg new file mode 100644 index 0000000..c7eabe4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-download-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-download.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-download.svg new file mode 100644 index 0000000..c61cdba --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-new.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-new.svg new file mode 100644 index 0000000..ea3224c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-open.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-open.svg new file mode 100644 index 0000000..5ea2fd3 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-search.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-search.svg new file mode 100644 index 0000000..482de0c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload-small.svg new file mode 100644 index 0000000..aca240e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload.svg new file mode 100644 index 0000000..c036e8c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_directory.svg b/app/src-style/default/assets/icons/prefers-dark/icon_directory.svg new file mode 100644 index 0000000..c9e4b87 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_dirty.svg b/app/src-style/default/assets/icons/prefers-dark/icon_dirty.svg new file mode 100644 index 0000000..e1a94fd --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_dirty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-download-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-download-small.svg new file mode 100644 index 0000000..9464d3c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-download-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-download.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-download.svg new file mode 100644 index 0000000..4da8082 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-edit.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-edit.svg new file mode 100644 index 0000000..d1e878c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-link.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-link.svg new file mode 100644 index 0000000..b2e1c1c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-new.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-new.svg new file mode 100644 index 0000000..bceb682 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-search.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-search.svg new file mode 100644 index 0000000..5776609 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-upload-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-upload-small.svg new file mode 100644 index 0000000..dbcb569 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-upload-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document-upload.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document-upload.svg new file mode 100644 index 0000000..bbcf554 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_document.svg b/app/src-style/default/assets/icons/prefers-dark/icon_document.svg new file mode 100644 index 0000000..6cefaf2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_dots-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_dots-small.svg new file mode 100644 index 0000000..014f2a5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_dots-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_dots.svg b/app/src-style/default/assets/icons/prefers-dark/icon_dots.svg new file mode 100644 index 0000000..7eef933 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_down-short.svg b/app/src-style/default/assets/icons/prefers-dark/icon_down-short.svg new file mode 100644 index 0000000..43b9c0d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_down-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_down.svg b/app/src-style/default/assets/icons/prefers-dark/icon_down.svg new file mode 100644 index 0000000..a0ee493 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_download-alt.svg b/app/src-style/default/assets/icons/prefers-dark/icon_download-alt.svg new file mode 100644 index 0000000..e845a22 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_download-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_download.svg b/app/src-style/default/assets/icons/prefers-dark/icon_download.svg new file mode 100644 index 0000000..b716537 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_edit.svg b/app/src-style/default/assets/icons/prefers-dark/icon_edit.svg new file mode 100644 index 0000000..fab0bd9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_equal.svg b/app/src-style/default/assets/icons/prefers-dark/icon_equal.svg new file mode 100644 index 0000000..b8f5526 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_error.svg b/app/src-style/default/assets/icons/prefers-dark/icon_error.svg new file mode 100644 index 0000000..4a83f85 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_expand.svg b/app/src-style/default/assets/icons/prefers-dark/icon_expand.svg new file mode 100644 index 0000000..3ace670 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-ascender.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-ascender.svg new file mode 100644 index 0000000..cb3cef0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-ascender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-baseline.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-baseline.svg new file mode 100644 index 0000000..a77d68d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-baseline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-h.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-h.svg new file mode 100644 index 0000000..c47dc4e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-w.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-w.svg new file mode 100644 index 0000000..502c703 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-w.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmax.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmax.svg new file mode 100644 index 0000000..e9405f1 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmin.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmin.svg new file mode 100644 index 0000000..84bc839 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds-xmin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds.svg new file mode 100644 index 0000000..27255b5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-bounds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-cap-height.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-cap-height.svg new file mode 100644 index 0000000..3cc59b8 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-cap-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-descender.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-descender.svg new file mode 100644 index 0000000..bc407ff --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-descender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font-x-height.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font-x-height.svg new file mode 100644 index 0000000..ecd17ba --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font-x-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_font.svg b/app/src-style/default/assets/icons/prefers-dark/icon_font.svg new file mode 100644 index 0000000..461e1fb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_gear.svg b/app/src-style/default/assets/icons/prefers-dark/icon_gear.svg new file mode 100644 index 0000000..af8f766 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_gear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_gears.svg b/app/src-style/default/assets/icons/prefers-dark/icon_gears.svg new file mode 100644 index 0000000..1f28c64 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_gears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_hidden.svg b/app/src-style/default/assets/icons/prefers-dark/icon_hidden.svg new file mode 100644 index 0000000..878b2c5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_hidden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_icon.svg b/app/src-style/default/assets/icons/prefers-dark/icon_icon.svg new file mode 100644 index 0000000..90fe67e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_inferior-or-equal.svg b/app/src-style/default/assets/icons/prefers-dark/icon_inferior-or-equal.svg new file mode 100644 index 0000000..6c307ca --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_inferior-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_inferior.svg b/app/src-style/default/assets/icons/prefers-dark/icon_inferior.svg new file mode 100644 index 0000000..60dbde9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_inferior.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_infos.svg b/app/src-style/default/assets/icons/prefers-dark/icon_infos.svg new file mode 100644 index 0000000..d5b30a9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_infos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_invalid.svg b/app/src-style/default/assets/icons/prefers-dark/icon_invalid.svg new file mode 100644 index 0000000..9d4f73d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_invalid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_layout.svg b/app/src-style/default/assets/icons/prefers-dark/icon_layout.svg new file mode 100644 index 0000000..5c81c44 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_left-short.svg b/app/src-style/default/assets/icons/prefers-dark/icon_left-short.svg new file mode 100644 index 0000000..3ace670 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_left-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_left.svg new file mode 100644 index 0000000..34759a4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_link-break.svg b/app/src-style/default/assets/icons/prefers-dark/icon_link-break.svg new file mode 100644 index 0000000..924caf6 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_link-break.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_link.svg b/app/src-style/default/assets/icons/prefers-dark/icon_link.svg new file mode 100644 index 0000000..a1f1692 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow-small.svg new file mode 100644 index 0000000..0b93e8a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow.svg b/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow.svg new file mode 100644 index 0000000..6743247 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_load-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_loading.svg b/app/src-style/default/assets/icons/prefers-dark/icon_loading.svg new file mode 100644 index 0000000..4fae771 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_locked.svg b/app/src-style/default/assets/icons/prefers-dark/icon_locked.svg new file mode 100644 index 0000000..b58971f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_locked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_ltr.svg b/app/src-style/default/assets/icons/prefers-dark/icon_ltr.svg new file mode 100644 index 0000000..36f8fba --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_ltr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_minus.svg b/app/src-style/default/assets/icons/prefers-dark/icon_minus.svg new file mode 100644 index 0000000..a9adcd4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_mirror-both.svg b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-both.svg new file mode 100644 index 0000000..2a03549 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-both.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_mirror-hor.svg b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-hor.svg new file mode 100644 index 0000000..21d46c9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_mirror-ver.svg b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-ver.svg new file mode 100644 index 0000000..368732e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_mirror-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_new-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_new-small.svg new file mode 100644 index 0000000..995aa79 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_new-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_new.svg b/app/src-style/default/assets/icons/prefers-dark/icon_new.svg new file mode 100644 index 0000000..b14157e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_orientation-landscape.svg b/app/src-style/default/assets/icons/prefers-dark/icon_orientation-landscape.svg new file mode 100644 index 0000000..dcc4614 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_orientation-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_orientation-portrait.svg b/app/src-style/default/assets/icons/prefers-dark/icon_orientation-portrait.svg new file mode 100644 index 0000000..5a12f57 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_orientation-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-left.svg new file mode 100644 index 0000000..fb18f91 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-right.svg new file mode 100644 index 0000000..e616937 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom.svg new file mode 100644 index 0000000..7fc6c58 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-center.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-center.svg new file mode 100644 index 0000000..130f451 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-left.svg new file mode 100644 index 0000000..4bb39ea --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-right.svg new file mode 100644 index 0000000..ced6b8b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-left.svg new file mode 100644 index 0000000..f7e8a2d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-right.svg new file mode 100644 index 0000000..3097332 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement-top.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top.svg new file mode 100644 index 0000000..62bd20b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_placement.svg b/app/src-style/default/assets/icons/prefers-dark/icon_placement.svg new file mode 100644 index 0000000..34bf96b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_placement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_plus.svg b/app/src-style/default/assets/icons/prefers-dark/icon_plus.svg new file mode 100644 index 0000000..321a38d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_processing.svg b/app/src-style/default/assets/icons/prefers-dark/icon_processing.svg new file mode 100644 index 0000000..e9689de --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_ready.svg b/app/src-style/default/assets/icons/prefers-dark/icon_ready.svg new file mode 100644 index 0000000..c8e1ee9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_ready.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_refresh.svg b/app/src-style/default/assets/icons/prefers-dark/icon_refresh.svg new file mode 100644 index 0000000..8902d5f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_remove.svg b/app/src-style/default/assets/icons/prefers-dark/icon_remove.svg new file mode 100644 index 0000000..fea853c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_reset.svg b/app/src-style/default/assets/icons/prefers-dark/icon_reset.svg new file mode 100644 index 0000000..96df239 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_reset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_right-short.svg b/app/src-style/default/assets/icons/prefers-dark/icon_right-short.svg new file mode 100644 index 0000000..96917e7 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_right-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_right.svg new file mode 100644 index 0000000..dd4fff5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_rtl.svg b/app/src-style/default/assets/icons/prefers-dark/icon_rtl.svg new file mode 100644 index 0000000..bb65e77 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_rtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_save-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_save-small.svg new file mode 100644 index 0000000..f09efee --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_save-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_save.svg b/app/src-style/default/assets/icons/prefers-dark/icon_save.svg new file mode 100644 index 0000000..c768f74 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_scale.svg b/app/src-style/default/assets/icons/prefers-dark/icon_scale.svg new file mode 100644 index 0000000..ad6f301 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_search-small.svg b/app/src-style/default/assets/icons/prefers-dark/icon_search-small.svg new file mode 100644 index 0000000..d70f09f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_search-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_search.svg b/app/src-style/default/assets/icons/prefers-dark/icon_search.svg new file mode 100644 index 0000000..6f47076 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_shortcut.svg b/app/src-style/default/assets/icons/prefers-dark/icon_shortcut.svg new file mode 100644 index 0000000..57884d0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_shortcut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_spread-hor.svg b/app/src-style/default/assets/icons/prefers-dark/icon_spread-hor.svg new file mode 100644 index 0000000..b6a6f36 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_spread-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_spread-ver.svg b/app/src-style/default/assets/icons/prefers-dark/icon_spread-ver.svg new file mode 100644 index 0000000..c73e18e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_spread-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_superior-or-equal.svg b/app/src-style/default/assets/icons/prefers-dark/icon_superior-or-equal.svg new file mode 100644 index 0000000..910db09 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_superior-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_superior.svg b/app/src-style/default/assets/icons/prefers-dark/icon_superior.svg new file mode 100644 index 0000000..279998e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_superior.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-center.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-center.svg new file mode 100644 index 0000000..4a63019 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-center.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-center.svg new file mode 100644 index 0000000..2aaa62e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-left.svg new file mode 100644 index 0000000..f1e49d5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-right.svg new file mode 100644 index 0000000..c8c1bf0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justifiy-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justify.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justify.svg new file mode 100644 index 0000000..a78b05d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-left.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-left.svg new file mode 100644 index 0000000..27f5d24 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-align-right.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-right.svg new file mode 100644 index 0000000..de92d8d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-ltr.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-ltr.svg new file mode 100644 index 0000000..9bfe632 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-ltr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-rtl.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-rtl.svg new file mode 100644 index 0000000..eff5f22 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-direction-rtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-em.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-em.svg new file mode 100644 index 0000000..ca0f021 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-em.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-liga-new.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-liga-new.svg new file mode 100644 index 0000000..a747165 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-liga-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-liga.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-liga.svg new file mode 100644 index 0000000..c79c440 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-liga.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-style.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-style.svg new file mode 100644 index 0000000..ed073f6 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode-char.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode-char.svg new file mode 100644 index 0000000..1b0dcf4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode-char.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode.svg new file mode 100644 index 0000000..91e0cab --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text-unicode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_text.svg b/app/src-style/default/assets/icons/prefers-dark/icon_text.svg new file mode 100644 index 0000000..7029c03 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_three-lines.svg b/app/src-style/default/assets/icons/prefers-dark/icon_three-lines.svg new file mode 100644 index 0000000..3bc5234 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_three-lines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_unequal.svg b/app/src-style/default/assets/icons/prefers-dark/icon_unequal.svg new file mode 100644 index 0000000..9b96232 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_unequal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_unlocked.svg b/app/src-style/default/assets/icons/prefers-dark/icon_unlocked.svg new file mode 100644 index 0000000..eabc326 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_unlocked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_up-short.svg b/app/src-style/default/assets/icons/prefers-dark/icon_up-short.svg new file mode 100644 index 0000000..6a7969c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_up-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_up.svg b/app/src-style/default/assets/icons/prefers-dark/icon_up.svg new file mode 100644 index 0000000..416f783 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_upload-alt.svg b/app/src-style/default/assets/icons/prefers-dark/icon_upload-alt.svg new file mode 100644 index 0000000..ae061bf --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_upload-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_upload.svg b/app/src-style/default/assets/icons/prefers-dark/icon_upload.svg new file mode 100644 index 0000000..e5ea600 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_valid.svg b/app/src-style/default/assets/icons/prefers-dark/icon_valid.svg new file mode 100644 index 0000000..d4ae458 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_valid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_view-grid.svg b/app/src-style/default/assets/icons/prefers-dark/icon_view-grid.svg new file mode 100644 index 0000000..906f230 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_view-grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_view-list.svg b/app/src-style/default/assets/icons/prefers-dark/icon_view-list.svg new file mode 100644 index 0000000..6885b80 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_view-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_view-timeline.svg b/app/src-style/default/assets/icons/prefers-dark/icon_view-timeline.svg new file mode 100644 index 0000000..bfc3e06 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_view-timeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_visible.svg b/app/src-style/default/assets/icons/prefers-dark/icon_visible.svg new file mode 100644 index 0000000..b1d894b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_visible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_waiting.svg b/app/src-style/default/assets/icons/prefers-dark/icon_waiting.svg new file mode 100644 index 0000000..e9689de --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_waiting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-dark/icon_warning.svg b/app/src-style/default/assets/icons/prefers-dark/icon_warning.svg new file mode 100644 index 0000000..8ac64e4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-dark/icon_warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_action.svg b/app/src-style/default/assets/icons/prefers-light/icon_action.svg new file mode 100644 index 0000000..ad75576 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_action.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_active.svg b/app/src-style/default/assets/icons/prefers-light/icon_active.svg new file mode 100644 index 0000000..6f4c14b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_active.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-hor-center.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-center.svg new file mode 100644 index 0000000..d82bf63 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-hor-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-left.svg new file mode 100644 index 0000000..fe3869b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-hor-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-right.svg new file mode 100644 index 0000000..2537b69 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-hor-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-ver-bottom.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-bottom.svg new file mode 100644 index 0000000..f9ee593 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-ver-center.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-center.svg new file mode 100644 index 0000000..f2792be --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_align-ver-top.svg b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-top.svg new file mode 100644 index 0000000..84c62ae --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_align-ver-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_and.svg b/app/src-style/default/assets/icons/prefers-light/icon_and.svg new file mode 100644 index 0000000..f4f5d54 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_and.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_app-illustrator.svg b/app/src-style/default/assets/icons/prefers-light/icon_app-illustrator.svg new file mode 100644 index 0000000..c6d1da9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_app-illustrator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_bounds-inside.svg b/app/src-style/default/assets/icons/prefers-light/icon_bounds-inside.svg new file mode 100644 index 0000000..aa4d580 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_bounds-inside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed-hor.svg b/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed-hor.svg new file mode 100644 index 0000000..f442fd9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed.svg b/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed.svg new file mode 100644 index 0000000..5abeefb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_bounds-mixed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_bounds-outside.svg b/app/src-style/default/assets/icons/prefers-light/icon_bounds-outside.svg new file mode 100644 index 0000000..9b5e5ef --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_bounds-outside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_case-capitalize.svg b/app/src-style/default/assets/icons/prefers-light/icon_case-capitalize.svg new file mode 100644 index 0000000..a95b9ba --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_case-capitalize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_case-lowercase.svg b/app/src-style/default/assets/icons/prefers-light/icon_case-lowercase.svg new file mode 100644 index 0000000..03f014e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_case-lowercase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_case-sentence.svg b/app/src-style/default/assets/icons/prefers-light/icon_case-sentence.svg new file mode 100644 index 0000000..9610c58 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_case-sentence.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_case-uppercase.svg b/app/src-style/default/assets/icons/prefers-light/icon_case-uppercase.svg new file mode 100644 index 0000000..cf432d7 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_case-uppercase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_center-hor.svg b/app/src-style/default/assets/icons/prefers-light/icon_center-hor.svg new file mode 100644 index 0000000..e4ca889 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_center-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_center-ver.svg b/app/src-style/default/assets/icons/prefers-light/icon_center-ver.svg new file mode 100644 index 0000000..89cfbc9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_center-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_checkbox-mixed.svg b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-mixed.svg new file mode 100644 index 0000000..8587355 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-mixed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_checkbox-off.svg b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-off.svg new file mode 100644 index 0000000..867fc2f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_checkbox-on.svg b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-on.svg new file mode 100644 index 0000000..19d0e4a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_checkbox-radio.svg b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-radio.svg new file mode 100644 index 0000000..24ffd88 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_checkbox-radio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_clear.svg b/app/src-style/default/assets/icons/prefers-light/icon_clear.svg new file mode 100644 index 0000000..f06948c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_clipboard-read.svg b/app/src-style/default/assets/icons/prefers-light/icon_clipboard-read.svg new file mode 100644 index 0000000..632be2c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_clipboard-read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_clipboard-write.svg b/app/src-style/default/assets/icons/prefers-light/icon_clipboard-write.svg new file mode 100644 index 0000000..27aef75 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_clipboard-write.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_clipboard.svg b/app/src-style/default/assets/icons/prefers-light/icon_clipboard.svg new file mode 100644 index 0000000..da916bf --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_close-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_close-small.svg new file mode 100644 index 0000000..6ae7fff --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_close-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_close.svg b/app/src-style/default/assets/icons/prefers-light/icon_close.svg new file mode 100644 index 0000000..bda6c91 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_cloud-download.svg b/app/src-style/default/assets/icons/prefers-light/icon_cloud-download.svg new file mode 100644 index 0000000..dfa7e25 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_cloud-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_cloud-upload.svg b/app/src-style/default/assets/icons/prefers-light/icon_cloud-upload.svg new file mode 100644 index 0000000..14e147d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_cloud-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_component-new.svg b/app/src-style/default/assets/icons/prefers-light/icon_component-new.svg new file mode 100644 index 0000000..b1a1b62 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_component-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_component.svg b/app/src-style/default/assets/icons/prefers-light/icon_component.svg new file mode 100644 index 0000000..8bdc30f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_delete.svg b/app/src-style/default/assets/icons/prefers-light/icon_delete.svg new file mode 100644 index 0000000..1a044c2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-download-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-download-small.svg new file mode 100644 index 0000000..bd43e83 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-download-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-download.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-download.svg new file mode 100644 index 0000000..9a667ff --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-new.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-new.svg new file mode 100644 index 0000000..bbbc78e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-open.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-open.svg new file mode 100644 index 0000000..240e980 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-search.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-search.svg new file mode 100644 index 0000000..98dac43 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-upload-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-upload-small.svg new file mode 100644 index 0000000..30d7ad9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-upload-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory-upload.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory-upload.svg new file mode 100644 index 0000000..b376621 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_directory.svg b/app/src-style/default/assets/icons/prefers-light/icon_directory.svg new file mode 100644 index 0000000..c3d01b3 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_dirty.svg b/app/src-style/default/assets/icons/prefers-light/icon_dirty.svg new file mode 100644 index 0000000..e1a94fd --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_dirty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-download-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-download-small.svg new file mode 100644 index 0000000..ae5b5e1 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-download-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-download.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-download.svg new file mode 100644 index 0000000..5216484 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-edit.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-edit.svg new file mode 100644 index 0000000..57fa29f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-link.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-link.svg new file mode 100644 index 0000000..b3680b0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-new.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-new.svg new file mode 100644 index 0000000..57aae59 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-search.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-search.svg new file mode 100644 index 0000000..ca5bb4e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-upload-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-upload-small.svg new file mode 100644 index 0000000..150b502 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-upload-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document-upload.svg b/app/src-style/default/assets/icons/prefers-light/icon_document-upload.svg new file mode 100644 index 0000000..a29815b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_document.svg b/app/src-style/default/assets/icons/prefers-light/icon_document.svg new file mode 100644 index 0000000..c51fb3a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_dots-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_dots-small.svg new file mode 100644 index 0000000..5d88b11 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_dots-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_dots.svg b/app/src-style/default/assets/icons/prefers-light/icon_dots.svg new file mode 100644 index 0000000..02a76cc --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_down-short.svg b/app/src-style/default/assets/icons/prefers-light/icon_down-short.svg new file mode 100644 index 0000000..e53503f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_down-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_down.svg b/app/src-style/default/assets/icons/prefers-light/icon_down.svg new file mode 100644 index 0000000..4d92155 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_download-alt.svg b/app/src-style/default/assets/icons/prefers-light/icon_download-alt.svg new file mode 100644 index 0000000..ef97f81 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_download-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_download.svg b/app/src-style/default/assets/icons/prefers-light/icon_download.svg new file mode 100644 index 0000000..e6c9f41 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_edit.svg b/app/src-style/default/assets/icons/prefers-light/icon_edit.svg new file mode 100644 index 0000000..25ec795 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_equal.svg b/app/src-style/default/assets/icons/prefers-light/icon_equal.svg new file mode 100644 index 0000000..67326de --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_error.svg b/app/src-style/default/assets/icons/prefers-light/icon_error.svg new file mode 100644 index 0000000..4a83f85 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_expand.svg b/app/src-style/default/assets/icons/prefers-light/icon_expand.svg new file mode 100644 index 0000000..33886bc --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-ascender.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-ascender.svg new file mode 100644 index 0000000..fab527d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-ascender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-baseline.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-baseline.svg new file mode 100644 index 0000000..3d3b933 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-baseline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-h.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-h.svg new file mode 100644 index 0000000..61e47e0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-w.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-w.svg new file mode 100644 index 0000000..e7d91d8 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-w.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmax.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmax.svg new file mode 100644 index 0000000..35de633 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmin.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmin.svg new file mode 100644 index 0000000..0b73db6 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds-xmin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-bounds.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds.svg new file mode 100644 index 0000000..fcdceaa --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-bounds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-cap-height.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-cap-height.svg new file mode 100644 index 0000000..62eb009 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-cap-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-descender.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-descender.svg new file mode 100644 index 0000000..79cdda0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-descender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font-x-height.svg b/app/src-style/default/assets/icons/prefers-light/icon_font-x-height.svg new file mode 100644 index 0000000..20149a2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font-x-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_font.svg b/app/src-style/default/assets/icons/prefers-light/icon_font.svg new file mode 100644 index 0000000..3174b2a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_gear.svg b/app/src-style/default/assets/icons/prefers-light/icon_gear.svg new file mode 100644 index 0000000..6c34290 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_gear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_gears.svg b/app/src-style/default/assets/icons/prefers-light/icon_gears.svg new file mode 100644 index 0000000..46c4b49 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_gears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_hidden.svg b/app/src-style/default/assets/icons/prefers-light/icon_hidden.svg new file mode 100644 index 0000000..49e12fb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_hidden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_icon.svg b/app/src-style/default/assets/icons/prefers-light/icon_icon.svg new file mode 100644 index 0000000..e05a58c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_inferior-or-equal.svg b/app/src-style/default/assets/icons/prefers-light/icon_inferior-or-equal.svg new file mode 100644 index 0000000..bb81689 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_inferior-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_inferior.svg b/app/src-style/default/assets/icons/prefers-light/icon_inferior.svg new file mode 100644 index 0000000..7b5d1e9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_inferior.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_infos.svg b/app/src-style/default/assets/icons/prefers-light/icon_infos.svg new file mode 100644 index 0000000..d5b30a9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_infos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_invalid.svg b/app/src-style/default/assets/icons/prefers-light/icon_invalid.svg new file mode 100644 index 0000000..e3e3124 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_invalid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_layout.svg b/app/src-style/default/assets/icons/prefers-light/icon_layout.svg new file mode 100644 index 0000000..ce8718a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_left-short.svg b/app/src-style/default/assets/icons/prefers-light/icon_left-short.svg new file mode 100644 index 0000000..33886bc --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_left-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_left.svg b/app/src-style/default/assets/icons/prefers-light/icon_left.svg new file mode 100644 index 0000000..f3bd9b2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_link-break.svg b/app/src-style/default/assets/icons/prefers-light/icon_link-break.svg new file mode 100644 index 0000000..04c81d9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_link-break.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_link.svg b/app/src-style/default/assets/icons/prefers-light/icon_link.svg new file mode 100644 index 0000000..68dc6e2 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_load-arrow-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_load-arrow-small.svg new file mode 100644 index 0000000..0b93e8a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_load-arrow-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_load-arrow.svg b/app/src-style/default/assets/icons/prefers-light/icon_load-arrow.svg new file mode 100644 index 0000000..6743247 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_load-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_loading.svg b/app/src-style/default/assets/icons/prefers-light/icon_loading.svg new file mode 100644 index 0000000..4fae771 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_locked.svg b/app/src-style/default/assets/icons/prefers-light/icon_locked.svg new file mode 100644 index 0000000..bf30b79 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_locked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_ltr.svg b/app/src-style/default/assets/icons/prefers-light/icon_ltr.svg new file mode 100644 index 0000000..78b5c91 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_ltr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_minus.svg b/app/src-style/default/assets/icons/prefers-light/icon_minus.svg new file mode 100644 index 0000000..c78bdff --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_mirror-both.svg b/app/src-style/default/assets/icons/prefers-light/icon_mirror-both.svg new file mode 100644 index 0000000..3d84b15 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_mirror-both.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_mirror-hor.svg b/app/src-style/default/assets/icons/prefers-light/icon_mirror-hor.svg new file mode 100644 index 0000000..ad37af4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_mirror-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_mirror-ver.svg b/app/src-style/default/assets/icons/prefers-light/icon_mirror-ver.svg new file mode 100644 index 0000000..1b75b11 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_mirror-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_new-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_new-small.svg new file mode 100644 index 0000000..995aa79 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_new-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_new.svg b/app/src-style/default/assets/icons/prefers-light/icon_new.svg new file mode 100644 index 0000000..b14157e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_orientation-landscape.svg b/app/src-style/default/assets/icons/prefers-light/icon_orientation-landscape.svg new file mode 100644 index 0000000..a9a81dd --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_orientation-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_orientation-portrait.svg b/app/src-style/default/assets/icons/prefers-light/icon_orientation-portrait.svg new file mode 100644 index 0000000..67976b4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_orientation-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-left.svg new file mode 100644 index 0000000..5f8b79d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-right.svg new file mode 100644 index 0000000..ea6e4f4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom.svg new file mode 100644 index 0000000..5e9c876 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-center.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-center.svg new file mode 100644 index 0000000..123aa14 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-left.svg new file mode 100644 index 0000000..729b26f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-right.svg new file mode 100644 index 0000000..4d3d309 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-top-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-top-left.svg new file mode 100644 index 0000000..4baa3e1 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-top-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-top-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-top-right.svg new file mode 100644 index 0000000..67a74ff --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement-top.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement-top.svg new file mode 100644 index 0000000..b23a03a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_placement.svg b/app/src-style/default/assets/icons/prefers-light/icon_placement.svg new file mode 100644 index 0000000..9fb9255 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_placement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_plus.svg b/app/src-style/default/assets/icons/prefers-light/icon_plus.svg new file mode 100644 index 0000000..98d7ae7 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_processing.svg b/app/src-style/default/assets/icons/prefers-light/icon_processing.svg new file mode 100644 index 0000000..e9689de --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_ready.svg b/app/src-style/default/assets/icons/prefers-light/icon_ready.svg new file mode 100644 index 0000000..c8e1ee9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_ready.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_refresh.svg b/app/src-style/default/assets/icons/prefers-light/icon_refresh.svg new file mode 100644 index 0000000..2491c83 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_remove.svg b/app/src-style/default/assets/icons/prefers-light/icon_remove.svg new file mode 100644 index 0000000..fea853c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_reset.svg b/app/src-style/default/assets/icons/prefers-light/icon_reset.svg new file mode 100644 index 0000000..96df239 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_reset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_right-short.svg b/app/src-style/default/assets/icons/prefers-light/icon_right-short.svg new file mode 100644 index 0000000..2ee1602 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_right-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_right.svg b/app/src-style/default/assets/icons/prefers-light/icon_right.svg new file mode 100644 index 0000000..109cbbf --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_rtl.svg b/app/src-style/default/assets/icons/prefers-light/icon_rtl.svg new file mode 100644 index 0000000..a1e1d9d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_rtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_save-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_save-small.svg new file mode 100644 index 0000000..41075dc --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_save-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_save.svg b/app/src-style/default/assets/icons/prefers-light/icon_save.svg new file mode 100644 index 0000000..417cd58 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_scale.svg b/app/src-style/default/assets/icons/prefers-light/icon_scale.svg new file mode 100644 index 0000000..9ccbb45 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_search-small.svg b/app/src-style/default/assets/icons/prefers-light/icon_search-small.svg new file mode 100644 index 0000000..5f0c33e --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_search-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_search.svg b/app/src-style/default/assets/icons/prefers-light/icon_search.svg new file mode 100644 index 0000000..281b232 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_shortcut.svg b/app/src-style/default/assets/icons/prefers-light/icon_shortcut.svg new file mode 100644 index 0000000..a7c08ba --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_shortcut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_spread-hor.svg b/app/src-style/default/assets/icons/prefers-light/icon_spread-hor.svg new file mode 100644 index 0000000..3d4ef74 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_spread-hor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_spread-ver.svg b/app/src-style/default/assets/icons/prefers-light/icon_spread-ver.svg new file mode 100644 index 0000000..57d2191 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_spread-ver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_superior-or-equal.svg b/app/src-style/default/assets/icons/prefers-light/icon_superior-or-equal.svg new file mode 100644 index 0000000..76aea43 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_superior-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_superior.svg b/app/src-style/default/assets/icons/prefers-light/icon_superior.svg new file mode 100644 index 0000000..e374e1b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_superior.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-center.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-center.svg new file mode 100644 index 0000000..72347bb --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-center.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-center.svg new file mode 100644 index 0000000..3bed14a --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-left.svg new file mode 100644 index 0000000..0c201e0 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-right.svg new file mode 100644 index 0000000..eb963f8 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justifiy-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-justify.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justify.svg new file mode 100644 index 0000000..e0b6c1c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-left.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-left.svg new file mode 100644 index 0000000..98e0184 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-align-right.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-align-right.svg new file mode 100644 index 0000000..e86d7f4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-direction-ltr.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-direction-ltr.svg new file mode 100644 index 0000000..1aeeb50 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-direction-ltr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-direction-rtl.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-direction-rtl.svg new file mode 100644 index 0000000..fbc62ef --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-direction-rtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-em.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-em.svg new file mode 100644 index 0000000..7afa9b5 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-em.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-liga-new.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-liga-new.svg new file mode 100644 index 0000000..8745774 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-liga-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-liga.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-liga.svg new file mode 100644 index 0000000..afafe92 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-liga.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-style.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-style.svg new file mode 100644 index 0000000..5648c9c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-unicode-char.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-unicode-char.svg new file mode 100644 index 0000000..1ccc64d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-unicode-char.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text-unicode.svg b/app/src-style/default/assets/icons/prefers-light/icon_text-unicode.svg new file mode 100644 index 0000000..f320835 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text-unicode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_text.svg b/app/src-style/default/assets/icons/prefers-light/icon_text.svg new file mode 100644 index 0000000..b141fac --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_three-lines.svg b/app/src-style/default/assets/icons/prefers-light/icon_three-lines.svg new file mode 100644 index 0000000..c98291d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_three-lines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_unequal.svg b/app/src-style/default/assets/icons/prefers-light/icon_unequal.svg new file mode 100644 index 0000000..12de66d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_unequal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_unlocked.svg b/app/src-style/default/assets/icons/prefers-light/icon_unlocked.svg new file mode 100644 index 0000000..d703407 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_unlocked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_up-short.svg b/app/src-style/default/assets/icons/prefers-light/icon_up-short.svg new file mode 100644 index 0000000..50a2a2b --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_up-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_up.svg b/app/src-style/default/assets/icons/prefers-light/icon_up.svg new file mode 100644 index 0000000..23e7c2f --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_upload-alt.svg b/app/src-style/default/assets/icons/prefers-light/icon_upload-alt.svg new file mode 100644 index 0000000..e88d01d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_upload-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_upload.svg b/app/src-style/default/assets/icons/prefers-light/icon_upload.svg new file mode 100644 index 0000000..7ed5d39 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_valid.svg b/app/src-style/default/assets/icons/prefers-light/icon_valid.svg new file mode 100644 index 0000000..7b6ce1d --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_valid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_view-grid.svg b/app/src-style/default/assets/icons/prefers-light/icon_view-grid.svg new file mode 100644 index 0000000..29f0a72 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_view-grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_view-list.svg b/app/src-style/default/assets/icons/prefers-light/icon_view-list.svg new file mode 100644 index 0000000..bf0ba1c --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_view-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_view-timeline.svg b/app/src-style/default/assets/icons/prefers-light/icon_view-timeline.svg new file mode 100644 index 0000000..c346ad3 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_view-timeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_visible.svg b/app/src-style/default/assets/icons/prefers-light/icon_visible.svg new file mode 100644 index 0000000..053a0e9 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_visible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_waiting.svg b/app/src-style/default/assets/icons/prefers-light/icon_waiting.svg new file mode 100644 index 0000000..e9689de --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_waiting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/assets/icons/prefers-light/icon_warning.svg b/app/src-style/default/assets/icons/prefers-light/icon_warning.svg new file mode 100644 index 0000000..8ac64e4 --- /dev/null +++ b/app/src-style/default/assets/icons/prefers-light/icon_warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src-style/default/buttons/button-ex.scss b/app/src-style/default/buttons/button-ex.scss index 33d3be4..05db9cf 100644 --- a/app/src-style/default/buttons/button-ex.scss +++ b/app/src-style/default/buttons/button-ex.scss @@ -45,5 +45,5 @@ $suffix: '_third'; :host(#{$SIZE_XS}) .label{ - --font-size:var(#{$varname_font_size_xs}); + --font-size:var(#{$id_font_size_xs}); } diff --git a/app/src-style/default/buttons/tab.scss b/app/src-style/default/buttons/tab.scss index 25bd4c3..7b2b34d 100644 --- a/app/src-style/default/buttons/tab.scss +++ b/app/src-style/default/buttons/tab.scss @@ -8,6 +8,7 @@ @import '../_mixins'; $hint_size: 4px; +$sel_hint_size: 1px; :host { @@ -39,10 +40,13 @@ $hint_size: 4px; @include ellipsis(); } - &::before{ + &::before, &::after{ content:""; position: absolute; box-sizing: border-box; + } + + &::before{ background-color: var(--flavor-secondary-idle); } @@ -52,7 +56,7 @@ $hint_size: 4px; // [ ][ ][ ] :host(#{$TOP}), :host(#{$BOTTOM}){ - border-right: 1px solid var(#{$varname_workspace_bg}); + border-right: 1px solid var(#{$id_workspace_bg}); } :host::before, :host(#{$TOP})::before, :host(#{$BOTTOM})::before{ @@ -61,12 +65,20 @@ $hint_size: 4px; height:$hint_size; } -:host::before, :host(#{$TOP})::before{ +:host::after, :host(#{$TOP})::after, :host(#{$BOTTOM})::after{ + left: $hint_size; + width:calc(100% - $hint_size*2); + height:$sel_hint_size; +} + +:host::before, :host(#{$TOP})::before, +:host::after, :host(#{$TOP})::after{ top:0; bottom:auto; } -:host(#{$BOTTOM})::before{ +:host(#{$BOTTOM})::before, +:host(#{$BOTTOM})::after{ top:auto; bottom:0; } @@ -77,7 +89,7 @@ $hint_size: 4px; // [ ] :host(#{$LEFT}), :host(#{$RIGHT}){ - border-bottom: 1px solid var(#{$varname_workspace_bg}); + border-bottom: 1px solid var(#{$id_workspace_bg}); } :host(#{$LEFT})::before, :host(#{$RIGHT})::before{ @@ -86,12 +98,20 @@ $hint_size: 4px; height:100%; } -:host(#{$LEFT})::before{ +:host(#{$LEFT})::after, :host(#{$RIGHT})::after{ + width:$sel_hint_size; + top: $hint_size; + height:calc(100% - $hint_size*2); +} + +:host(#{$LEFT})::before, +:host(#{$LEFT})::after{ left: 0; right: auto; } -:host(#{$RIGHT})::before{ +:host(#{$RIGHT})::before, +:host(#{$RIGHT})::after{ left: auto; right: 0; } @@ -107,11 +127,15 @@ $hint_size: 4px; } :host(#{$SELECTED}){ - background-color: var(#{$varname_workspace_bg}); + background-color: var(#{$id_workspace_bg}); &::before{ background-color: var(--flavor-secondary-selected); } + &::after{ + background-color: rgba(var(--col-active-rgb), 1); + } + } diff --git a/app/src-style/default/dialogs/dialog-box.scss b/app/src-style/default/dialogs/dialog-box.scss index 6eb1dd4..ea2fcee 100644 --- a/app/src-style/default/dialogs/dialog-box.scss +++ b/app/src-style/default/dialogs/dialog-box.scss @@ -30,7 +30,7 @@ $br: 5px; } -:host(#{$SHOWN}) { +:host(.shown) { & .corner-icon { diff --git a/app/src-style/default/dialogs/dialog-overlay.scss b/app/src-style/default/dialogs/dialog-overlay.scss index a0ac4b4..0c8be77 100644 --- a/app/src-style/default/dialogs/dialog-overlay.scss +++ b/app/src-style/default/dialogs/dialog-overlay.scss @@ -8,43 +8,15 @@ @import '../_mixins'; :host{ - - backdrop-filter: blur(0); - transition: $transition_opacity, backdrop-filter 0.25s linear; - - padding:var(#{$varname_size_l}); - - & .content{ - @include box-shadow(20px, 0,50px,20px, rgba(0,0,0,0)); - transform: perspective(800px) scale(1.2) rotateX(20deg); - opacity:0; - } - + padding:var(#{$id_size_l}); } -:host(#{$SHOWN}){ - - animation: blurIn 150ms ease-in-out forwards; - - & .content{ - +.content{ + &.shown{ animation: scaleIn 150ms ease-in-out forwards; - - @keyframes scaleIn { - to { - @include box-shadow(5px, 0, 10px, -5px, rgba(0,0,0,1)); - transform: perspective(800px) scale(1) rotateX(0deg); - opacity:1; - } - } - - } - - @keyframes blurIn { - to { - backdrop-filter: blur(10px); - } - } - + } + &:not(.shown){ + animation: scaleOut 150ms ease-in-out forwards; + } } diff --git a/app/src-style/default/global-host.scss b/app/src-style/default/global-host.scss index 37a2a7f..5156ccc 100644 --- a/app/src-style/default/global-host.scss +++ b/app/src-style/default/global-host.scss @@ -6,20 +6,15 @@ @import './_variables'; @import './_typography'; -.row-break { - flex-basis: 100%; - height: 0; - width: 0%; -} - -.column-break { - flex-basis: 100%; - height: 0%; - width: 0; -} +@import './_animations'; :host{ transition: $transition_opacity; + position: relative; +} + +div, span{ + position: relative; } :host(:not(.unpainted)){ @@ -59,20 +54,20 @@ // ----> Host presets // Sizes -@include for-each-host-selector('', $SIZES, '', '', $size_varnames) using ($index, $val) { +@include for-each-host-selector('', $SIZES, '', '', $size_ids) using ($index, $val) { --size:var(#{$val}); } // Flavors -@include for-each-host-selector('', $FLAVORS_EX, '', '', $col_flavors_ex_varnames) using ($index, $val) { +@include for-each-host-selector('', $FLAVORS_EX, '', '', $col_flavors_ex_ids) using ($index, $val) { --flavor-color: var(#{$val}); --flavor-color-rgb: var(#{$val+"-rgb"}); - --flavor-color-dark: var(#{$val+'-dark'}); - --flavor-color-dark-rgb: var(#{$val+'-dark-rgb'}); + --flavor-color-low: var(#{$val+'-low'}); + --flavor-color-low-rgb: var(#{$val+'-low-rgb'}); - --flavor-color-light: var(#{$val+'-bright'}); - --flavor-color-light-rgb: var(#{$val+'-bright-rgb'}); + --flavor-color-light: var(#{$val+'-high'}); + --flavor-color-light-rgb: var(#{$val+'-high-rgb'}); --flavor-contrast:var(#{$val+'-contrast'}); } @@ -89,52 +84,6 @@ @include scrollbar("", 4px); -// Animations - -@-webkit-keyframes rotating{ - from { - -webkit-transform: rotate(0deg); - -o-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - -o-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -@keyframes rotating { - from { - -ms-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - -o-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -ms-transform: rotate(360deg); - -moz-transform: rotate(360deg); - -webkit-transform: rotate(360deg); - -o-transform: rotate(360deg); - transform: rotate(360deg); - } -} -.rotating-slow { - -webkit-animation: rotating 2s linear infinite; - -moz-animation: rotating 2s linear infinite; - -ms-animation: rotating 2s linear infinite; - -o-animation: rotating 2s linear infinite; - animation: rotating 2s linear infinite; -} - -.rotating-fast { - -webkit-animation: rotating 1s linear infinite; - -moz-animation: rotating 1s linear infinite; - -ms-animation: rotating 1s linear infinite; - -o-animation: rotating 1s linear infinite; - animation: rotating 1s linear infinite; -} /*----------------------------*/ /**/ @@ -145,34 +94,36 @@ // ----> Extended color schemes (state colors) -:host{ +:host { order: var(--order); - min-height:0; + min-height: 0; min-width: 0; - & a{ - color:var(--flavor-contrast-idle) + & a { + color: var(--flavor-contrast-idle) } - & a:hover{ - color:var(--flavor-contrast-focused) + & a:hover { + color: var(--flavor-contrast-focused) } - + } -:host(.disabled){ +:host(.disabled) { user-select: none; pointer-events: none; opacity: 0.4; } - /* Hide scrollbar for IE, Edge and Firefox */ -:host(.invisible-scrollbar){ +/* Hide scrollbar for IE, Edge and Firefox */ +:host(.invisible-scrollbar) { - -ms-overflow-style: none; /* IE and Edge */ - scrollbar-width: none; /* Firefox */ + -ms-overflow-style: none; + /* IE and Edge */ + scrollbar-width: none; + /* Firefox */ /* Hide scrollbar for Chrome, Safari and Opera */ &::-webkit-scrollbar { @@ -181,8 +132,7 @@ } -@include for-each-host-selector('', $FLAVORS_EX, '', '', $col_flavors_ex_varnames) -using ($index, $val){ +@include for-each-host-selector('', $FLAVORS_EX, '', '', $col_flavors_ex_ids) using ($index, $val) { --flavor-color: var(#{$val}); --flavor-contrast:var(#{$val+'-contrast'}); @@ -190,7 +140,7 @@ using ($index, $val){ $val: str-replace($val, '--col-'); $flavor_id: $index; - @include for-each-in($default_states_ids) using ($i, $st){ + @include for-each-in($default_states_ids) using ($i, $st) { $short_state: nth($short_states_ids, $i); #{'--flavor-primary-'+$st}:var(#{'--fcol-'+$flavor_id+'-0-'+$short_state}); #{'--flavor-secondary-'+$st}:var(#{'--fcol-'+$flavor_id+'-1-'+$short_state}); @@ -199,12 +149,17 @@ using ($index, $val){ } -:host(#{$WAITING}){ cursor: wait; } -:host(#{$PROCESSING}){ cursor: progress; } +:host(#{$WAITING}) { + cursor: wait; +} + +:host(#{$PROCESSING}) { + cursor: progress; +} /* Icon */ -.icon-element{ +.icon-element { background-size: contain; background-repeat: no-repeat; background-position: center center; @@ -212,14 +167,14 @@ using ($index, $val){ } .icon { - + aspect-ratio: 1/1; - margin:4px; + margin: 4px; padding: 0; - - --h-size:calc( var(--size) / 2); - --clamped-size: clamp(var(#{$varname_size_xs}), var(--h-size), var(#{$varname_size_l})); + + --h-size: calc(var(--size) / 2); + --clamped-size: clamp(var(#{$id_size_xs}), var(--h-size), var(#{$id_size_l})); width: var(--clamped-size); min-width: var(--clamped-size); @@ -231,13 +186,13 @@ using ($index, $val){ box-sizing: border-box; - &:only-child{ - margin:0; + &:only-child { + margin: 0; } } -div.icon{ +div.icon { display: inline-block; } @@ -245,20 +200,98 @@ div.icon{ /* Extensions */ -.ext-overlay{ +.ext-overlay { @include click-through-overlay(); - border-radius: 3px; + border-radius: inherit; box-sizing: border-box; } -.drag-overlay{ +.drag-overlay { border: 1px solid #{$col_active}; } -.drop-target-overlay{ +.drop-target-overlay { border: 1px solid #{$col_ready}; } +.drop-target-edges { + + position: absolute; + box-sizing: border-box; + + z-index: 10000; + + & .line { + position: absolute; + width: 2px; + height: 2px; + + border-radius: 4px; + background-color: var(--col-active); + + & .dot { + position: absolute; + width: 10px; + height: 10px; + top:-4px; + left:-4px; + border-radius: 100%; + background-color: var(--col-active); + } + + } + + &.vertical { + + & .dot { + left:calc(calc(100% * var(--mx))); + } + + & .line { + width: 100%; + left:0; + } + + &.drop-before { + & .line { + top: -4px; + } + } + + &.drop-after { + & .line { + bottom:-4px; + } + } + + } + + &.horizontal { + + & .dot { + top:calc(calc(100% * var(--my))); + } + + & .line { + height: 100%; + top:0; + } + + &.drop-before::before { + & .line { + left:-4px; + } + } + + &.drop-after::after { + & .line { + right:-4px; + } + } + + } +} + /*-------------------------------------*/ /**/ /*-------------------------------------*/ @@ -268,6 +301,14 @@ div.icon{ +/*-------------------------------*/ +/**/ +/*-------------------------------*/ + +@import './_mixins'; +@import './_variables'; + + /*---------------------------------*/ /**/ /*---------------------------------*/ diff --git a/app/src-style/default/global.scss b/app/src-style/default/global.scss index 585f5e4..7d6b195 100644 --- a/app/src-style/default/global.scss +++ b/app/src-style/default/global.scss @@ -6,6 +6,7 @@ @import './_variables'; @import './_typography'; + /* // smartphones, touchscreens @@ -35,70 +36,98 @@ :root{ // Font sizes - @for $i from 0 to length($font_size_varnames) { - #{nth($font_size_varnames, $i + 1)}: nth($font_size_values, $i + 1); - #{nth($font_size_varnames, $i + 1)+'-title'}: nth($font_size_values, $i + 1) * 1.4; + @for $i from 0 to length($font_size_ids) { + #{nth($font_size_ids, $i + 1)}: nth($font_size_values, $i + 1); + #{nth($font_size_ids, $i + 1)+'-title'}: nth($font_size_values, $i + 1) * 1.4; } // Sizes - --size:var(#{$varname_size_m}); // Default size + --size:var(#{$id_size_m}); // Default size - @for $i from 0 to length($size_varnames) { - #{nth($size_varnames, $i + 1)}: nth($size_values, $i + 1); - #{nth($size_varnames_half, $i + 1)}: nth($size_values_half, $i + 1); - #{nth($size_varnames_third, $i + 1)}: nth($size_values_third, $i + 1); + @for $i from 0 to length($size_ids) { + #{nth($size_ids, $i + 1)}: nth($size_values, $i + 1); + #{nth($size_ids_half, $i + 1)}: nth($size_values_half, $i + 1); + #{nth($size_ids_third, $i + 1)}: nth($size_values_third, $i + 1); } $col: #1e1e1e; --default-level-0-color: #{$col}; - --default-level-0-color-rgb: red(#{$col}), green(#{$col}), blue(#{$col}); + --default-level-0-color-rgb: red($col), green($col), blue($col); $col: #3b3b3b; --default-level-1-color: #{$col}; - --default-level-1-color-rgb: red(#{$col}), green(#{$col}), blue(#{$col}); + --default-level-1-color-rgb: red($col), green($col), blue($col); $col: #505050; --default-level-2-color: #{$col}; - --default-level-2-color-rgb: red(#{$col}), green(#{$col}), blue(#{$col}); + --default-level-2-color-rgb: red($col), green($col), blue($col); $col: $col_input_bg; - #{$varname_col_input_bg}:#{$col}; - #{$varname_col_input_bg+'-rgb'}: red($col), green($col), blue($col); + #{$id_col_input_bg}:#{$col}; + #{$id_col_input_bg+'-rgb'}: red($col), green($col), blue($col); } @include prefers_dark{ :root{ - @for $i from 0 to length($col_flavors_ex_varnames) { - $varname:nth($col_flavors_ex_varnames, $i + 1); + @for $i from 0 to length($col_flavors_ex_ids) { + $id:nth($col_flavors_ex_ids, $i + 1); $col:nth($col_flavors_ex, $i + 1); - #{$varname+'-rgb'}: red($col), green($col), blue($col); - #{$varname}: $col; - #{$varname+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); + #{$id+'-rgb'}: red($col), green($col), blue($col); + #{$id}: $col; + #{$id+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); + $_c:darkened($col); + #{$id+'-low-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-low'}: $_c; + $_c:lightened($col); + #{$id+'-high-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-high'}: $_c; + } + + @for $i from 0 to length($col_base_ids) { + $id:nth($col_base_ids, $i + 1); + $col:nth($col_base_dark, $i + 1); + #{$id+'-rgb'}: red($col), green($col), blue($col); + #{$id}: $col; + #{$id+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); $_c:darkened($col); - #{$varname+'-dark-rgb'}: red($_c), green($_c), blue($_c); - #{$varname+'-dark'}: $_c; + #{$id+'-low-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-low'}: $_c; $_c:lightened($col); - #{$varname+'-bright-rgb'}: red($_c), green($_c), blue($_c); - #{$varname+'-bright'}: $_c; + #{$id+'-high-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-high'}: $_c; } } } @include prefers_light{ :root{ - @for $i from 0 to length($col_flavors_ex_varnames) { - $varname:nth($col_flavors_ex_varnames, $i + 1); + @for $i from 0 to length($col_flavors_ex_ids) { + $id:nth($col_flavors_ex_ids, $i + 1); $col:nth($col_flavors_ex, $i + 1); - #{$varname+'-rgb'}: red($col), green($col), blue($col); - #{$varname}: $col; - #{$varname+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); + #{$id+'-rgb'}: red($col), green($col), blue($col); + #{$id}: $col; + #{$id+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); + $_c:darkened($col); + #{$id+'-low-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-low'}: $_c; + $_c:lightened($col); + #{$id+'-high-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-high'}: $_c; + } + + @for $i from 0 to length($col_base_ids) { + $id:nth($col_base_ids, $i + 1); + $col:nth($col_base_light, $i + 1); + #{$id+'-rgb'}: red($col), green($col), blue($col); + #{$id}: $col; + #{$id+'-contrast'}: nth($col_flavors_ex_bw, $i + 1); $_c:darkened($col); - #{$varname+'-dark-rgb'}: red($_c), green($_c), blue($_c); - #{$varname+'-dark'}: $_c; + #{$id+'-low-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-low'}: $_c; $_c:lightened($col); - #{$varname+'-bright-rgb'}: red($_c), green($_c), blue($_c); - #{$varname+'-bright'}: $_c; + #{$id+'-high-rgb'}: red($_c), green($_c), blue($_c); + #{$id+'-high'}: $_c; } } } @@ -122,7 +151,7 @@ @for $i from 0 to length($col_flavors_ex) { $base_color: nth($col_flavors_ex, $i + 1); - $flavor_name: str-replace(nth($col_flavors_ex_varnames, $i + 1), '--col-'); + $flavor_name: str-replace(nth($col_flavors_ex_ids, $i + 1), '--col-'); $flavor_id: $i+1; // Create per-state variants @@ -140,8 +169,8 @@ } - #{$varname_drawer_bg}: $drawer_bg_dark; - #{$varname_overlay_bg}: $overlay_bg_dark; + #{$id_drawer_bg}: $drawer_bg_dark; + #{$id_overlay_bg}: $overlay_bg_dark; } @@ -153,14 +182,14 @@ @import './_variables'; :host{ - #{$varname_workspace_bg}: $workspace_bg_dark; - #{$varname_workspace_nav_bg}: $workspace_nav_bg_dark; + #{$id_workspace_bg}: $workspace_bg_dark; + #{$id_workspace_nav_bg}: $workspace_nav_bg_dark; - #{$varname_tree_indent}: $tree_indent; - #{$varname_tree_size}: var(--size-s); + #{$id_tree_indent}: $tree_indent; + #{$id_tree_size}: var(--size-s); - #{$varname_folder_indent}: $folder_indent; - #{$varname_folder_size}: var(--size-s); + #{$id_folder_indent}: $folder_indent; + #{$id_folder_size}: var(--size-s); } /*---------------------------------*/ @@ -171,9 +200,9 @@ @import './_variables'; :host{ - #{$varname_workspace_bg}: $workspace_bg_dark; - #{$varname_workspace_nav_bg}: $workspace_nav_bg_dark; + #{$id_workspace_bg}: $workspace_bg_dark; + #{$id_workspace_nav_bg}: $workspace_nav_bg_dark; - #{$varname_tree_indent}: $tree_indent; - #{$varname_tree_size}: var(--size-s); + #{$id_tree_indent}: $tree_indent; + #{$id_tree_size}: var(--size-s); } \ No newline at end of file diff --git a/app/src-style/default/inputs/boolean.scss b/app/src-style/default/inputs/boolean.scss index e7052a1..fdd3144 100644 --- a/app/src-style/default/inputs/boolean.scss +++ b/app/src-style/default/inputs/boolean.scss @@ -15,38 +15,38 @@ border-radius: 3px; } -.field{ +.field { height: var(--size); cursor: pointer; } .body { - + transition: background-color 0.15s ease; display: flex; justify-content: flex-start; - width: calc( var(--size) * 2); + width: calc(var(--size) * 2); height: var(--size); background-color: black; border-radius: 1000px; transform-origin: center center; - transform:scale(0.8); + transform: scale(0.8); & .handle { transition: all 0.15s ease; - + pointer-events: none; - transform: scale(0.5,0.5); + transform: scale(0.5, 0.5); flex: 0 0 auto; - + width: 50%; height: 100%; - - background-color: rgba(127,127,127,1); + + background-color: rgba(127, 127, 127, 1); border-radius: 1000px; } @@ -58,8 +58,7 @@ & .handle { background-color: white; - transform: scale(0.6,0.6); + transform: scale(0.6, 0.6); } -} - +} \ No newline at end of file diff --git a/app/src-style/default/inputs/select-inline.scss b/app/src-style/default/inputs/select-inline.scss new file mode 100644 index 0000000..f225458 --- /dev/null +++ b/app/src-style/default/inputs/select-inline.scss @@ -0,0 +1,22 @@ +/*-------------------------------*/ +/**/ +/*-------------------------------*/ + +@import '../_variables'; +@import '../_mixins'; +@import '../_constants'; + +:host::before{ + + content:""; + position: absolute; + height: 2px; + width: 100%; + bottom: -1px; + + @include dotted-line-horizontal(var(#{$id_col_base_500}-rgb), 10%, 2px, 6px); + + pointer-events: none; + +} + diff --git a/app/src-style/default/inputs/select.scss b/app/src-style/default/inputs/select.scss index 52d78d5..6f2df79 100644 --- a/app/src-style/default/inputs/select.scss +++ b/app/src-style/default/inputs/select.scss @@ -45,23 +45,23 @@ select { -moz-appearance: none; appearance: none; - background-color: var(#{$varname_col_input_bg}); + background-color: var(#{$id_col_input_bg}); color: rgba(200,200,200,1); &:checked{ //font-weight: bolder; - background-color: var(#{$varname_col_input_bg}); + background-color: var(#{$id_col_input_bg}); color: var(--col-active); } &:hover { background-color: var(--col-active); - color: var(#{$varname_col_input_bg}); + color: var(#{$id_col_input_bg}); } &:active{ background-color: var(--col-active); - color: var(#{$varname_col_input_bg}); + color: var(#{$id_col_input_bg}); } } diff --git a/app/src-style/default/inspectors/inspector-view.scss b/app/src-style/default/inspectors/inspector-view.scss index a105f10..edbd3a3 100644 --- a/app/src-style/default/inspectors/inspector-view.scss +++ b/app/src-style/default/inspectors/inspector-view.scss @@ -9,4 +9,9 @@ :host{ //cursor: pointer; //@include no-select; + padding: 10px +} + +.body{ + } diff --git a/app/src-style/default/inspectors/items/item-action.scss b/app/src-style/default/inspectors/items/item-action.scss deleted file mode 100644 index abee277..0000000 --- a/app/src-style/default/inspectors/items/item-action.scss +++ /dev/null @@ -1,13 +0,0 @@ -/*---------------------------------*/ -/**/ -/*---------------------------------*/ - -@import '../../_constants'; -@import '../../_variables'; -@import '../../_functions'; -@import '../../_mixins'; - -:host{ - background-color: rgba(0,0,0,0.1); - height:32px -} diff --git a/app/src-style/default/lists/tree-group.scss b/app/src-style/default/lists/tree-group.scss deleted file mode 100644 index 621169b..0000000 --- a/app/src-style/default/lists/tree-group.scss +++ /dev/null @@ -1,65 +0,0 @@ -/*-------------------------------*/ -/**/ -/*-------------------------------*/ - -@import '../_constants'; -@import '../_variables'; -@import '../_mixins'; - -@import './tree-item'; - -:host{ - padding: 0; - margin: 0; - --half-indent: calc(var(#{$varname_tree_indent}) / 2); -} - -:host(#{$FOCUSED}) { - cursor: pointer; - background-color: transparent; - - & .header{ - background-color: rgba(127,127,127,0.2); - } -} - -:host(#{$EXPANDED}) .icon.expand{ - transform: rotate(90deg); -} - -.header{ - - box-sizing: border-box; - - display: flex; - flex-flow: row nowrap; - justify-content: flex-start; - align-items: center; - - height: var(#{$varname_tree_size}); - padding-left: var(--indent); - -} - -.body{ - - flex-flow: column nowrap; - justify-content: flex-start; - align-items: stretch; - - padding: 0; - margin: 0; - min-width: 0; - - &::before{ - content: ""; - position: absolute; - left: calc(var(--half-indent) + var(--indent)); - height: 100%; - width: 0; - border-left: 1px solid rgba(127,127,127,0.5); - z-index: 999999; - } - -} - diff --git a/app/src-style/default/lists/tree-item.scss b/app/src-style/default/lists/tree-item.scss deleted file mode 100644 index f574a26..0000000 --- a/app/src-style/default/lists/tree-item.scss +++ /dev/null @@ -1,41 +0,0 @@ -/*-------------------------------*/ -/**/ -/*-------------------------------*/ - -@import '../_constants'; -@import '../_variables'; -@import '../_mixins'; - -:host{ - - box-sizing: border-box; - - //transition: padding-left 0.05s ease; - - display: flex; - flex-flow: row nowrap; - justify-content: flex-start; - align-items: center; - - padding: 2px; - padding-right: 4px; - - border-radius: 2px; - - height: var(#{$varname_tree_size}); - min-height: var(#{$varname_tree_size}); - - --indent: calc(var(--depth) * var(#{$varname_tree_indent})); - - padding-left: var(--indent); - -} - -:host(#{$FOCUSED}) { - cursor: pointer; - background-color: rgba(127,127,127,0.2); -} - -:host(#{$DRAGGED}) { - border: 1px dashed #ff0000; -} diff --git a/app/src-style/default/lists/tree-root.scss b/app/src-style/default/lists/tree-root.scss deleted file mode 100644 index 4da2c05..0000000 --- a/app/src-style/default/lists/tree-root.scss +++ /dev/null @@ -1,21 +0,0 @@ -/*-------------------------------*/ -/**/ -/*-------------------------------*/ - -@import '../_constants'; -@import '../_variables'; -@import '../_mixins'; - -@import './tree-group'; - -:host{ - #{$varname_tree_size}: var(--size-s); -} - -.header{ - -} - -.body{ - -} \ No newline at end of file diff --git a/app/src-style/default/modals/simple-modal.scss b/app/src-style/default/modals/simple-modal.scss index 611140c..d2612e3 100644 --- a/app/src-style/default/modals/simple-modal.scss +++ b/app/src-style/default/modals/simple-modal.scss @@ -7,9 +7,10 @@ @import '../_functions'; @import '../_constants'; -$br: 5px; +$r : 5px; :host { - border-radius: $br; - background-color: var(--default-level-1-color); + padding: $r; + border-radius: $r; + background-color: rgba(var(#{$id_col_base_400}-rgb), 1); } \ No newline at end of file diff --git a/app/src-style/default/views/drawer-overlay.scss b/app/src-style/default/views/drawer-overlay.scss index f99679b..fe76672 100644 --- a/app/src-style/default/views/drawer-overlay.scss +++ b/app/src-style/default/views/drawer-overlay.scss @@ -7,34 +7,63 @@ @import '../_functions'; @import '../_mixins'; -:host .content{ - @include drop-shadow(0,0,20px, rgba(0,0,0,0.5)); -} +$time : 250ms; +$transition: ease-out forwards; -:host(.content-left) .content{ - transform: translateX(-100%); +:host(.content-left) .content { + //transform: translateX(-100%); } -:host(.content-right) .content{ - transform: translateX(100%); +:host(.content-right) .content { + //transform: translateX(100%); } -:host(.content-top) .content{ - transform: translateY(-100%); +:host(.content-top) .content { + //transform: translateY(-100%); } -:host(.content-bottom) .content{ - transform: translateY(100%); +:host(.content-bottom) .content { + //transform: translateY(100%); } -:host(#{$SHOWN}) .content{ - animation: slideIn 150ms ease-out forwards; - @keyframes slideIn { - to { - transform: translateX(0%) translateY(0%); +.content { + + @include drop-shadow(0, 0, 20px, rgba(0, 0, 0, 0.5)); + + &.shown { + &.left { + animation: slideInLeft $time $transition; + } + + &.right { + animation: slideInRight $time $transition; + } + + &.top { + animation: slideInTop $time $transition; + } + + &.bottom { + animation: slideInBottom $time $transition; } } - -} + &:not(.shown) { + &.left { + animation: slideOutLeft $time $transition; + } + + &.right { + animation: slideOutRight $time $transition; + } + + &.top { + animation: slideOutTop $time $transition; + } + + &.bottom { + animation: slideOutBottom $time $transition; + } + } +} \ No newline at end of file diff --git a/app/src-style/default/views/drawer.scss b/app/src-style/default/views/drawer.scss index 4f18911..1e205e4 100644 --- a/app/src-style/default/views/drawer.scss +++ b/app/src-style/default/views/drawer.scss @@ -8,8 +8,10 @@ @import '../_mixins'; :host { - background-color: var(#{$varname_drawer_bg}); - --size:var(#{$varname_size_m}); + + --size:var(#{$id_size_m}); + + background-color:var(#{$id_col_base_200}); min-width: 350px; min-height: 350px; @@ -39,6 +41,6 @@ .body{ padding: 10px 20px; - border-top: 1px solid rgba(127,127,127,.2); - background-color: rgba(0,0,0,.2); + border-top: 1px solid var(#{$id_col_base_300}-high); + background-color: var(#{$id_col_base_300}); } \ No newline at end of file diff --git a/app/src-style/default/views/editor-shelf.scss b/app/src-style/default/views/editor-shelf.scss index 2d0577e..f8f8484 100644 --- a/app/src-style/default/views/editor-shelf.scss +++ b/app/src-style/default/views/editor-shelf.scss @@ -8,10 +8,10 @@ @import '../_mixins'; :host{ - background-color: rgba(0,0,0,0.1); + //background-color: rgba(var(#{$id_col_base_200}-rgb), 1); } -$shelflinecol: rgba(127,127,127,0.1); +$shelflinecol: rgba(var(#{$id_col_base_400}-rgb), 1); .navigation{ @@ -30,4 +30,8 @@ $shelflinecol: rgba(127,127,127,0.1); &.right{ border-left: 1px solid $shelflinecol; } +} + +.controls{ + } \ No newline at end of file diff --git a/app/src-style/default/views/foldout.scss b/app/src-style/default/views/foldout.scss new file mode 100644 index 0000000..a496354 --- /dev/null +++ b/app/src-style/default/views/foldout.scss @@ -0,0 +1,47 @@ +/*-------------------------------*/ +/**/ +/*-------------------------------*/ + +@import '../_constants'; +@import '../_variables'; +@import '../_mixins'; +@import '../_functions'; + +:host { + + @include no-select; + + padding: 10px; + border-radius: 4px; + margin-bottom: 5px; + + background-color: rgba(var(#{$id_col_base_300}-rgb), 0.5); + border-left:1px solid rgba(var(#{$id_col_base_400}-rgb), 0.5); + +} + +:host(:hover) { + border-left:1px solid rgba(var(#{$id_col_base_400}-rgb), 1); +} + +:host(.expanded) { + & .header { + + padding-bottom: 10px; + + & .label{ + opacity: 0.7; + } + + & .expand{ + opacity: 0.4; + } + + } +} + +:host(:first-of-type:not(:first-child)){ + margin-top:10px; +} + +:host .label {} diff --git a/app/src-style/default/views/overlay.scss b/app/src-style/default/views/overlay.scss index 2e05215..bd47df8 100644 --- a/app/src-style/default/views/overlay.scss +++ b/app/src-style/default/views/overlay.scss @@ -8,11 +8,27 @@ @import '../_mixins'; :host{ - --bg_color: rgba(0,0,0,0); - background-color: var(--bg_color); - transition: $transition_opacity, background-color 0.15s linear; + --bg_color: rgba(var(#{$id_col_base_200}-rgb), 0.5); } -:host(#{$SHOWN}){ - --bg_color: var(#{$varname_overlay_bg}); +:host(.shown){ + + animation: blurIn 250ms ease-in-out forwards; + + & .bg{ + animation: bgColorIn 250ms ease-in-out forwards; + } + } + +:host(:not(.shown)){ + + animation: blurOut 250ms ease-in forwards; + + & .bg{ + animation: bgColorOut 250ms ease-in forwards; + } + +} + + diff --git a/app/src-style/default/views/shelf.scss b/app/src-style/default/views/shelf.scss index 9445598..780f078 100644 --- a/app/src-style/default/views/shelf.scss +++ b/app/src-style/default/views/shelf.scss @@ -8,7 +8,7 @@ @import '../_mixins'; :host{ - background-color: rgba(0,0,0,0.1); + //background-color: rgba(0,0,0,0.1); } .view{ diff --git a/app/src-style/default/views/workspace-cell-nav.scss b/app/src-style/default/views/workspace-cell-nav.scss index fb31261..fe045b9 100644 --- a/app/src-style/default/views/workspace-cell-nav.scss +++ b/app/src-style/default/views/workspace-cell-nav.scss @@ -10,7 +10,7 @@ $spacing: 0px; :host{ - background-color: var(#{$varname_workspace_nav_bg}); + background-color: var(#{$id_workspace_nav_bg}); } :host(#{$HORIZONTAL}){ diff --git a/app/src-style/default/views/workspace-cell.scss b/app/src-style/default/views/workspace-cell.scss index 1feedf2..01194c5 100644 --- a/app/src-style/default/views/workspace-cell.scss +++ b/app/src-style/default/views/workspace-cell.scss @@ -8,5 +8,5 @@ @import '../_mixins'; :host{ - background-color: var(#{$varname_workspace_bg}); + background-color: var(#{$id_workspace_bg}); } \ No newline at end of file diff --git a/app/src-style/default/views/workspace.scss b/app/src-style/default/views/workspace.scss index bd8c0ce..b797757 100644 --- a/app/src-style/default/views/workspace.scss +++ b/app/src-style/default/views/workspace.scss @@ -6,5 +6,5 @@ @import '../_mixins'; :host{ - background-color: var(#{$varname_workspace_bg}); + background-color: var(#{$id_workspace_bg}); } \ No newline at end of file diff --git a/app/src-style/default/widgets/foldout.scss b/app/src-style/default/widgets/foldout.scss index d3c9824..a236426 100644 --- a/app/src-style/default/widgets/foldout.scss +++ b/app/src-style/default/widgets/foldout.scss @@ -7,16 +7,38 @@ @import '../_mixins'; @import '../_functions'; -$padding: 2px; -$bg: rgb(70, 70, 70); - :host { - + @include no-select; + padding: 10px; + border-radius: 4px; + margin-bottom: 5px; + + background-color: rgba(var(#{$id_col_base_400}-rgb), 0.3); } -:host .label{ - + + +:host(:hover) { + background-color: rgba(var(#{$id_col_base_400}-rgb), 0.5); } + +:host(.expanded) { + & .header { + + padding-bottom: 10px; + + & .label{ + opacity: 0.7; + } + + & .expand{ + opacity: 0.4; + } + + } +} + +:host .label {} \ No newline at end of file diff --git a/app/src-style/default/widgets/property-control.scss b/app/src-style/default/widgets/property-control.scss new file mode 100644 index 0000000..de8c4fe --- /dev/null +++ b/app/src-style/default/widgets/property-control.scss @@ -0,0 +1,15 @@ +/*-------------------------------------*/ +/**/ +/*-------------------------------------*/ + +@import '../_constants'; +@import '../_variables'; +@import '../_mixins'; +@import '../_functions'; + +:host { + + //@include no-select; + +} + diff --git a/app/src-style/default/widgets/tag.scss b/app/src-style/default/widgets/tag.scss index dff77c1..2fab7c5 100644 --- a/app/src-style/default/widgets/tag.scss +++ b/app/src-style/default/widgets/tag.scss @@ -16,7 +16,7 @@ $bg: rgb(70, 70, 70); //width:auto !important; - --size:var(#{$varname_size_xs}); // Default size + --size:var(#{$id_size_xs}); // Default size --w-height: calc(var(--size) - #{$padding * 2}); height:var(--w-height); @@ -40,7 +40,7 @@ $bg: rgb(70, 70, 70); } :host .label{ - flex: 0 0 auto; + flex: 1 1 auto; font-size:10px; text-transform: uppercase; diff --git a/package.json b/package.json index e80ff0c..3b3fadf 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "mkfont", - "version": "1.2.1", + "version": "1.2.2", "author": { "name": "Timothé Lapetite", "email": "nebukam@gmail.com" }, "license": "SEE LICENSE IN LICENSE", "dependencies": { - "@nkmjs/core": "^0.3.14", + "@nkmjs/core": "^1.3.9", "svg-path-reverse": "^1.3.0", "svg2ttf": "^6.0.3", "svgo": "^2.8.0", @@ -16,10 +16,11 @@ }, "scripts": { "nkmjs": "nkmjs", - "processor": "node app/js-unicode/unicode-processor.js" + "processor": "node app/js-unicode/unicode-processor.js", + "install-and-link": "yarn install && yarn link @nkmjs/core && yarn link @nkmjs/core-dev" }, "devDependencies": { - "@nkmjs/core-dev": "^0.3.16", - "electron": "^17.1.0" + "@nkmjs/core-dev": "^1.3.9", + "electron": "^24.4.0" } } \ No newline at end of file diff --git a/pkg.cc b/pkg.cc deleted file mode 100644 index 5394f36..0000000 --- a/pkg.cc +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "mkfont", - "version": "1.2.1", - "author": { - "name": "Timothé Lapetite", - "email": "nebukam@gmail.com" - }, - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@nkmjs/core": "^0.3.14", - "svg-path-reverse": "^1.3.0", - "svg2ttf": "^6.0.3", - "svgo": "^2.8.0", - "svgpath": "^2.5.0", - "ttf2svg": "^1.2.0" - }, - "scripts": { - "nkmjs": "nkmjs", - "processor": "node app/js-unicode/unicode-processor.js" - }, - "devDependencies": { - "@nkmjs/core-dev": "^0.3.16", - "electron": "^17.1.0" - } -} - -{ - "name": "mkfont", - "version": "1.2.2", - "author": { - "name": "Timothé Lapetite", - "email": "nebukam@gmail.com" - }, - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@nkmjs/core": "../nkmjs/packages/nkmjs-core", - "svg-path-reverse": "^1.3.0", - "svg2ttf": "^6.0.3", - "svgo": "^2.8.0", - "svgpath": "^2.5.0", - "ttf2svg": "^1.2.0" - }, - "scripts": { - "nkmjs": "nkmjs", - "processor": "node app/js-unicode/unicode-processor.js" - }, - "devDependencies": { - "@nkmjs/core-dev": "../nkmjs/packages/nkmjs-core-dev", - "electron": "^17.1.0" - } -} \ No newline at end of file