purgetss 7.7.0 → 7.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/bin/purgetss +24 -7
- package/dist/purgetss.ui.js +1 -1
- package/lib/templates/purgetss.config.js.cjs +6 -15
- package/package.json +2 -2
- package/src/cli/commands/build.js +9 -4
- package/src/cli/commands/images.js +8 -0
- package/src/cli/commands/purge.js +17 -3
- package/src/cli/commands/shades.js +2 -2
- package/src/cli/utils/unsupported-class-reporter.js +209 -0
- package/src/core/branding/ensure-brand-section.js +6 -15
- package/src/core/branding/post-gen-notes.js +12 -4
- package/{experimental/completions2.js → src/core/builders/auto-utilities-builder.js} +56 -27
- package/src/core/builders/tailwind-builder.js +2 -2
- package/src/core/builders/tailwind-helpers.js +0 -444
- package/src/core/images/gen-scales.js +24 -6
- package/src/core/images/index.js +9 -2
- package/src/core/purger/tailwind-purger.js +40 -4
- package/src/shared/helpers/core.js +0 -19
- package/src/shared/helpers/utils.js +100 -28
- package/src/shared/semantic-helpers.js +143 -0
- package/src/dev/builders/tailwind-builder.js +0 -26
|
@@ -7,28 +7,21 @@ import path from 'path'
|
|
|
7
7
|
import { fileURLToPath } from 'url'
|
|
8
8
|
import { createRequire } from 'module'
|
|
9
9
|
import _ from 'lodash'
|
|
10
|
-
import chalk from 'chalk'
|
|
11
10
|
let saveGlossary = false
|
|
12
11
|
|
|
13
12
|
const __filename = fileURLToPath(import.meta.url)
|
|
14
13
|
const __dirname = path.dirname(__filename)
|
|
15
14
|
const require = createRequire(import.meta.url)
|
|
16
15
|
const cwd = process.cwd()
|
|
17
|
-
import { colores } from '
|
|
16
|
+
import { colores } from '../../shared/brand-colors.js'
|
|
18
17
|
export { colores }
|
|
19
|
-
const purgeLabel = colores.purgeLabel
|
|
20
18
|
|
|
21
|
-
import * as helpers from '
|
|
22
|
-
import { getConfigFile } from '
|
|
23
|
-
import { projectsConfigJS } from '
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
info: (...args) => console.log(purgeLabel, args.join(' ')),
|
|
28
|
-
warn: (...args) => console.log(purgeLabel, chalk.yellow(args.join(' '))),
|
|
29
|
-
error: (...args) => console.log(purgeLabel, chalk.red(args.join(' '))),
|
|
30
|
-
file: (...args) => console.log(purgeLabel, chalk.yellow(args.join(' ')), 'file created!')
|
|
31
|
-
}
|
|
19
|
+
import * as helpers from '../../shared/helpers.js'
|
|
20
|
+
import { getConfigFile } from '../../shared/config-manager.js'
|
|
21
|
+
import { projectsConfigJS } from '../../shared/constants.js'
|
|
22
|
+
import { logger } from '../../shared/logger.js'
|
|
23
|
+
import { registerSemanticName } from '../../shared/semantic-helpers.js'
|
|
24
|
+
const tiCompletionsFile = require('../../../lib/completions/titanium/completions-v3.json')
|
|
32
25
|
|
|
33
26
|
// Keys whose numeric values are interpreted with `ti.ui.defaultunit` from tiapp.xml.
|
|
34
27
|
// The glossary .md files for these keys receive an inline "// Unit: ..." note
|
|
@@ -174,7 +167,7 @@ function buildSubfolderIndex(folder) {
|
|
|
174
167
|
}
|
|
175
168
|
|
|
176
169
|
function glossaryBaseFolder() {
|
|
177
|
-
if (!fs.existsSync(projectsConfigJS)) return path.resolve(__dirname, '
|
|
170
|
+
if (!fs.existsSync(projectsConfigJS)) return path.resolve(__dirname, '../../../dist/glossary/')
|
|
178
171
|
if (saveGlossary) return cwd + '/purgetss/glossary/'
|
|
179
172
|
return ''
|
|
180
173
|
}
|
|
@@ -236,7 +229,7 @@ function autoBuildUtilitiesTSS(options = {}) {
|
|
|
236
229
|
|
|
237
230
|
saveGlossary = options.glossary ?? false
|
|
238
231
|
scaffoldGlossary()
|
|
239
|
-
let tailwindStyles = fs.readFileSync(path.resolve(__dirname, '
|
|
232
|
+
let tailwindStyles = fs.readFileSync(path.resolve(__dirname, '../../../lib/templates/tailwind/custom-template.tss'), 'utf8')
|
|
240
233
|
tailwindStyles += (fs.existsSync(projectsConfigJS)) ? `// config.js file updated on: ${getFileUpdatedDate(projectsConfigJS)}\n` : '// default config.js file\n'
|
|
241
234
|
|
|
242
235
|
const baseValues = combineDefaultThemeWithConfigFile()
|
|
@@ -255,7 +248,7 @@ function autoBuildUtilitiesTSS(options = {}) {
|
|
|
255
248
|
saveFile(cwd + '/purgetss/styles/utilities.tss', tailwindStyles)
|
|
256
249
|
logger.file('./purgetss/styles/utilities.tss')
|
|
257
250
|
} else {
|
|
258
|
-
saveFile(path.resolve(__dirname, '
|
|
251
|
+
saveFile(path.resolve(__dirname, '../../../dist/utilities.tss'), tailwindStyles)
|
|
259
252
|
logger.file('./dist/utilities.tss')
|
|
260
253
|
}
|
|
261
254
|
}
|
|
@@ -311,7 +304,7 @@ function processCompletionsClasses(_completionsWithBaseValues) {
|
|
|
311
304
|
|
|
312
305
|
function generateGlossary(_key, _theClasses, _keyName = null) {
|
|
313
306
|
let baseDestinationFolder = ''
|
|
314
|
-
if (!fs.existsSync(projectsConfigJS)) baseDestinationFolder = path.resolve(__dirname, '
|
|
307
|
+
if (!fs.existsSync(projectsConfigJS)) baseDestinationFolder = path.resolve(__dirname, '../../../dist/glossary/')
|
|
315
308
|
else if (saveGlossary) baseDestinationFolder = cwd + '/purgetss/glossary/'
|
|
316
309
|
|
|
317
310
|
if (baseDestinationFolder !== '') {
|
|
@@ -378,7 +371,7 @@ function getTiUIComponents(_base) {
|
|
|
378
371
|
|
|
379
372
|
function processCompoundClasses({ ..._base }) {
|
|
380
373
|
let compoundClasses = ''
|
|
381
|
-
const compoundTemplate = require('
|
|
374
|
+
const compoundTemplate = require('../../../lib/templates/tailwind/compoundTemplate.json')
|
|
382
375
|
|
|
383
376
|
_.each(compoundTemplate, (value, key) => {
|
|
384
377
|
compoundClasses += generateGlossary(key, helpers.processProperties(value.description, value.template, value.base ?? { default: _base[key] }))
|
|
@@ -534,6 +527,11 @@ function combineDefaultThemeWithConfigFile() {
|
|
|
534
527
|
}
|
|
535
528
|
|
|
536
529
|
_.merge(base.colors, themeOrDefaultValues.colors, configFile.theme.extend.colors)
|
|
530
|
+
// Track semantic color names so opacity modifiers (bg-X/65) can later
|
|
531
|
+
// auto-derive an alpha-applied entry in semantic.colors.json. A value is
|
|
532
|
+
// "semantic" when it's a string that isn't a hex literal or a Ti reserved
|
|
533
|
+
// keyword.
|
|
534
|
+
_.each(base.colors, value => collectSemanticReferences(value))
|
|
537
535
|
_.merge(base.size, themeOrDefaultValues.spacing, configFile.theme.extend.spacing)
|
|
538
536
|
_.merge(base.spacing, themeOrDefaultValues.spacing, configFile.theme.extend.spacing)
|
|
539
537
|
|
|
@@ -572,8 +570,16 @@ function combineDefaultThemeWithConfigFile() {
|
|
|
572
570
|
delete base.zIndex.auto
|
|
573
571
|
|
|
574
572
|
// ! Process custom Window, View and ImageView
|
|
575
|
-
//
|
|
573
|
+
// Track whether the user defined each Ti Element at the theme.X (replace) level
|
|
574
|
+
// BEFORE merging extend into theme. This mirrors the Tailwind convention:
|
|
575
|
+
// theme.X → REPLACE the framework's defaults entirely
|
|
576
|
+
// theme.extend.X → MERGE with the framework's defaults
|
|
577
|
+
// Without this distinction, presets (like Window's backgroundColor: '#FFFFFF')
|
|
578
|
+
// leak into a strict-replace config and surface as ghost properties in app.tss.
|
|
579
|
+
const userReplaced = {}
|
|
576
580
|
_.each(['Window', 'View', 'ImageView'], comp => {
|
|
581
|
+
userReplaced[comp] = !!configFile.theme[comp] && !configFile.theme.extend[comp]
|
|
582
|
+
|
|
577
583
|
if (configFile.theme.extend[comp]) {
|
|
578
584
|
configFile.theme[comp] = _.merge({}, configFile.theme[comp], configFile.theme.extend[comp])
|
|
579
585
|
delete configFile.theme.extend[comp]
|
|
@@ -584,11 +590,18 @@ function combineDefaultThemeWithConfigFile() {
|
|
|
584
590
|
}
|
|
585
591
|
})
|
|
586
592
|
|
|
587
|
-
//
|
|
588
|
-
//
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
593
|
+
// Apply framework defaults only when NOT in strict-replace mode. In replace
|
|
594
|
+
// mode the user's config is the single source of truth — presets must not be
|
|
595
|
+
// silently re-injected.
|
|
596
|
+
if (!userReplaced.Window) {
|
|
597
|
+
configFile.theme.Window = _.merge({ default: { backgroundColor: '#FFFFFF' } }, configFile.theme.Window)
|
|
598
|
+
}
|
|
599
|
+
if (!userReplaced.ImageView) {
|
|
600
|
+
configFile.theme.ImageView = _.merge({ ios: { hires: true } }, configFile.theme.ImageView)
|
|
601
|
+
}
|
|
602
|
+
if (!userReplaced.View) {
|
|
603
|
+
configFile.theme.View = _.merge({ default: { width: 'Ti.UI.SIZE', height: 'Ti.UI.SIZE' } }, configFile.theme.View)
|
|
604
|
+
}
|
|
592
605
|
|
|
593
606
|
base.Window = configFile.theme.Window
|
|
594
607
|
base.ImageView = configFile.theme.ImageView
|
|
@@ -610,6 +623,22 @@ function checkDeletePlugins() {
|
|
|
610
623
|
return Array.isArray(deletePlugins) ? deletePlugins : Object.keys(deletePlugins).map(key => key)
|
|
611
624
|
}
|
|
612
625
|
|
|
626
|
+
// Walk a color config value (possibly nested object of shades) and register
|
|
627
|
+
// any leaf string that points to a semantic color name in
|
|
628
|
+
// `semantic.colors.json` (e.g. `surface: 'surfaceColor'`,
|
|
629
|
+
// `brand: { DEFAULT: 'brandColor' }`).
|
|
630
|
+
const _semanticReservedValues = new Set(['transparent', 'currentColor', 'inherit'])
|
|
631
|
+
function collectSemanticReferences(value) {
|
|
632
|
+
if (typeof value === 'string') {
|
|
633
|
+
if (value.startsWith('#') || _semanticReservedValues.has(value)) return
|
|
634
|
+
registerSemanticName(value)
|
|
635
|
+
return
|
|
636
|
+
}
|
|
637
|
+
if (value && typeof value === 'object') {
|
|
638
|
+
_.each(value, v => collectSemanticReferences(v))
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
613
642
|
// ! Helper Functions
|
|
614
643
|
function removeDeprecatedColors(theObject) {
|
|
615
644
|
delete theObject.blueGray
|
|
@@ -830,8 +859,8 @@ function generateCombinedClasses(key, data) {
|
|
|
830
859
|
|
|
831
860
|
function saveAutoTSS(key, classes) {
|
|
832
861
|
if (fs.existsSync(projectsConfigJS) && saveGlossary) {
|
|
833
|
-
makeSureFolderExists(cwd + '/purgetss/
|
|
834
|
-
saveFile(cwd + `/purgetss/
|
|
862
|
+
makeSureFolderExists(cwd + '/purgetss/glossary/tailwind-classes/')
|
|
863
|
+
saveFile(cwd + `/purgetss/glossary/tailwind-classes/${key}.tss`, classes)
|
|
835
864
|
}
|
|
836
865
|
}
|
|
837
866
|
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
// Import functions from their new modular locations
|
|
10
10
|
import * as helpers from '../../shared/helpers.js'
|
|
11
|
-
import { autoBuildUtilitiesTSS } from '
|
|
11
|
+
import { autoBuildUtilitiesTSS } from './auto-utilities-builder.js'
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Build Tailwind (
|
|
14
|
+
* Build Tailwind (Auto-builds utilities.tss from config.cjs (active production path))
|
|
15
15
|
* @param {Object} options - Build options
|
|
16
16
|
*/
|
|
17
17
|
export function buildTailwind(options) {
|
|
@@ -1,39 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PurgeTSS v7.1.0 - Core Builder: Tailwind Helpers
|
|
3
|
-
* Helper functions for building Tailwind CSS
|
|
4
|
-
*
|
|
5
|
-
* COPIED from src/index.js during refactorization - NO CHANGES to logic.
|
|
6
3
|
*
|
|
7
4
|
* @since 7.1.0
|
|
8
5
|
* @author César Estrada
|
|
9
6
|
*/
|
|
10
7
|
|
|
11
|
-
import _ from 'lodash'
|
|
12
|
-
import defaultColors from 'tailwindcss/colors.js'
|
|
13
|
-
|
|
14
|
-
// Import functions from their new modular locations
|
|
15
|
-
import { getConfigFile } from '../../shared/config-manager.js'
|
|
16
|
-
import { removeDeprecatedColors, fixPercentages } from '../../shared/helpers.js'
|
|
17
|
-
|
|
18
|
-
// Get config once for this module
|
|
19
|
-
const configFile = getConfigFile()
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Remove fit, max, min values from width, height and spacing objects
|
|
23
|
-
* @param {Object} theObject - Object with width, height, spacing properties
|
|
24
|
-
*/
|
|
25
|
-
export function removeFitMaxMin(theObject) {
|
|
26
|
-
delete theObject.width.fit
|
|
27
|
-
delete theObject.width.max
|
|
28
|
-
delete theObject.width.min
|
|
29
|
-
delete theObject.height.fit
|
|
30
|
-
delete theObject.height.max
|
|
31
|
-
delete theObject.height.min
|
|
32
|
-
delete theObject.spacing.fit
|
|
33
|
-
delete theObject.spacing.max
|
|
34
|
-
delete theObject.spacing.min
|
|
35
|
-
}
|
|
36
|
-
|
|
37
8
|
/**
|
|
38
9
|
* Combine keys from theme and extend, with fallback to base values
|
|
39
10
|
* @param {Object} values - Theme values object
|
|
@@ -44,418 +15,3 @@ export function removeFitMaxMin(theObject) {
|
|
|
44
15
|
export function combineKeys(values, base, key) {
|
|
45
16
|
return (values[key]) ? { ...values[key], ...values.extend[key] } : { ...base, ...values.extend[key] }
|
|
46
17
|
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Get base values for Tailwind building
|
|
50
|
-
* This function prepares all the base theme values needed for building
|
|
51
|
-
* @param {Object} defaultTheme - Default Tailwind theme
|
|
52
|
-
* @returns {Object} Base values object
|
|
53
|
-
*/
|
|
54
|
-
export function getBaseValues(defaultTheme) {
|
|
55
|
-
const defaultThemeWidth = defaultTheme.width({ theme: () => (defaultTheme.spacing) })
|
|
56
|
-
const defaultThemeHeight = defaultTheme.height({ theme: () => (defaultTheme.spacing) })
|
|
57
|
-
|
|
58
|
-
removeDeprecatedColors(defaultColors)
|
|
59
|
-
|
|
60
|
-
// !Prepare values
|
|
61
|
-
const tiResets = { full: '100%' }
|
|
62
|
-
const allWidthsCombined = (configFile.theme.spacing) ? { ...configFile.theme.spacing, ...tiResets } : { ...defaultThemeWidth }
|
|
63
|
-
const allHeightsCombined = (configFile.theme.spacing) ? { ...configFile.theme.spacing, ...tiResets } : { ...defaultThemeHeight }
|
|
64
|
-
const allSpacingCombined = (configFile.theme.spacing) ? { ...configFile.theme.spacing, ...tiResets } : { ...defaultThemeWidth, ...defaultThemeHeight }
|
|
65
|
-
|
|
66
|
-
const themeOrDefaultValues = {
|
|
67
|
-
width: configFile.theme.width ?? allWidthsCombined,
|
|
68
|
-
height: configFile.theme.height ?? allHeightsCombined,
|
|
69
|
-
spacing: configFile.theme.spacing ?? allSpacingCombined,
|
|
70
|
-
fontSize: configFile.theme.spacing ?? defaultTheme.fontSize,
|
|
71
|
-
colors: configFile.theme.colors ?? { transparent: 'transparent', ...defaultColors }
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// ! Remove unnecessary values
|
|
75
|
-
removeFitMaxMin(themeOrDefaultValues)
|
|
76
|
-
|
|
77
|
-
// ! Merge with extend values
|
|
78
|
-
const base = {
|
|
79
|
-
width: { ...themeOrDefaultValues.spacing, ...configFile.theme.extend.spacing, ...themeOrDefaultValues.width, ...configFile.theme.extend.width },
|
|
80
|
-
height: { ...themeOrDefaultValues.spacing, ...configFile.theme.extend.spacing, ...themeOrDefaultValues.height, ...configFile.theme.extend.height },
|
|
81
|
-
colors: { ...themeOrDefaultValues.colors, ...configFile.theme.extend.colors },
|
|
82
|
-
spacing: { ...themeOrDefaultValues.spacing, ...configFile.theme.extend.spacing },
|
|
83
|
-
fontSize: { ...themeOrDefaultValues.fontSize, ...configFile.theme.extend.spacing, ...configFile.theme.extend.fontSize },
|
|
84
|
-
columns: { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12 },
|
|
85
|
-
delay: { 0: '0ms', 25: '25ms', 50: '50ms', 250: '250ms', 350: '350ms', 400: '400ms', 450: '450ms', 600: '600ms', 800: '800ms', 900: '900ms', 2000: '2000ms', 3000: '3000ms', 4000: '4000ms', 5000: '5000ms' }
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
fixPercentages(base.width)
|
|
89
|
-
fixPercentages(base.height)
|
|
90
|
-
fixPercentages(base.spacing)
|
|
91
|
-
|
|
92
|
-
return base
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Combine all values for Tailwind building - MASSIVE function with all Titanium properties
|
|
97
|
-
* This function builds the complete values object used in legacy Tailwind building
|
|
98
|
-
* @param {Object} base - Base values from getBaseValues()
|
|
99
|
-
* @param {Object} defaultTheme - Default Tailwind theme
|
|
100
|
-
* @returns {Object} Complete values object for building
|
|
101
|
-
*/
|
|
102
|
-
export function combineAllValues(base, defaultTheme) {
|
|
103
|
-
const allValues = {}
|
|
104
|
-
|
|
105
|
-
// ! Custom Window, View and ImageView
|
|
106
|
-
// Merge extend values into theme (same as colors, spacing, etc.)
|
|
107
|
-
_.each(['Window', 'View', 'ImageView'], comp => {
|
|
108
|
-
if (configFile.theme.extend[comp]) {
|
|
109
|
-
configFile.theme[comp] = _.merge({}, configFile.theme[comp], configFile.theme.extend[comp])
|
|
110
|
-
delete configFile.theme.extend[comp]
|
|
111
|
-
}
|
|
112
|
-
// Normalize shorthand: { apply: '...' } → { default: { apply: '...' } }
|
|
113
|
-
if (configFile.theme[comp] && configFile.theme[comp].apply && !configFile.theme[comp].default) {
|
|
114
|
-
configFile.theme[comp] = { default: configFile.theme[comp] }
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
// Merge user config WITH defaults, then write back to configFile.theme
|
|
119
|
-
// so that downstream functions pick up the full merged object
|
|
120
|
-
configFile.theme.Window = _.merge({ default: { backgroundColor: '#FFFFFF' } }, configFile.theme.Window)
|
|
121
|
-
configFile.theme.ImageView = _.merge({ ios: { hires: true } }, configFile.theme.ImageView)
|
|
122
|
-
configFile.theme.View = _.merge({ default: { width: 'Ti.UI.SIZE', height: 'Ti.UI.SIZE' } }, configFile.theme.View)
|
|
123
|
-
|
|
124
|
-
allValues.Window = configFile.theme.Window
|
|
125
|
-
allValues.ImageView = configFile.theme.ImageView
|
|
126
|
-
allValues.View = configFile.theme.View
|
|
127
|
-
|
|
128
|
-
// ! Width, height and margin properties
|
|
129
|
-
// INFO: sizingProperties: For glossary generator only... Do not move from this position.
|
|
130
|
-
allValues.sizingProperties = {}
|
|
131
|
-
|
|
132
|
-
allValues.height = base.height
|
|
133
|
-
allValues.width = base.width
|
|
134
|
-
allValues.margin = combineKeys(configFile.theme, base.spacing, 'margin')
|
|
135
|
-
allValues.marginAlternate = combineKeys(configFile.theme, base.spacing, 'margin')
|
|
136
|
-
|
|
137
|
-
// ! Properties with constant values
|
|
138
|
-
// INFO: constantProperties: For glossary generator only... Do not move from this position.
|
|
139
|
-
allValues.constantProperties = {}
|
|
140
|
-
|
|
141
|
-
// allValues.audioStreamType = {};
|
|
142
|
-
// allValues.category = {};
|
|
143
|
-
allValues.accessibilityHidden = {}
|
|
144
|
-
allValues.accessoryType = {}
|
|
145
|
-
allValues.activeIconIsMask = {}
|
|
146
|
-
allValues.activityEnterTransition = {}
|
|
147
|
-
allValues.activityExitTransition = {}
|
|
148
|
-
allValues.activityIndicatorStyle = {}
|
|
149
|
-
allValues.activityReenterTransition = {}
|
|
150
|
-
allValues.activityReturnTransition = {}
|
|
151
|
-
allValues.activitySharedElementEnterTransition = {}
|
|
152
|
-
allValues.activitySharedElementExitTransition = {}
|
|
153
|
-
allValues.activitySharedElementReenterTransition = {}
|
|
154
|
-
allValues.activitySharedElementReturnTransition = {}
|
|
155
|
-
allValues.alertDialogStyle = {}
|
|
156
|
-
allValues.allowsBackForwardNavigationGestures = {}
|
|
157
|
-
allValues.allowsLinkPreview = {}
|
|
158
|
-
allValues.allowsMultipleSelectionDuringEditing = {}
|
|
159
|
-
allValues.allowsMultipleSelectionInteraction = {}
|
|
160
|
-
allValues.allowsSelection = {}
|
|
161
|
-
allValues.allowsSelectionDuringEditing = {}
|
|
162
|
-
allValues.allowUserCustomization = {}
|
|
163
|
-
allValues.anchorPoint = {}
|
|
164
|
-
allValues.autoAdjustScrollViewInsets = {}
|
|
165
|
-
allValues.autocapitalization = {}
|
|
166
|
-
allValues.autocorrect = {}
|
|
167
|
-
allValues.autofillType = {}
|
|
168
|
-
allValues.autoLink = {}
|
|
169
|
-
allValues.autoreverse = {}
|
|
170
|
-
allValues.autorotate = {}
|
|
171
|
-
allValues.backgroundBlendMode = {}
|
|
172
|
-
allValues.backgroundLinearGradient = {}
|
|
173
|
-
allValues.backgroundRadialGradient = {}
|
|
174
|
-
allValues.backgroundRepeat = {}
|
|
175
|
-
allValues.borderStyle = {}
|
|
176
|
-
allValues.bubbleParent = {}
|
|
177
|
-
allValues.buttonStyle = {}
|
|
178
|
-
allValues.cacheMode = {}
|
|
179
|
-
allValues.cachePolicy = {}
|
|
180
|
-
allValues.calendarViewShown = {}
|
|
181
|
-
allValues.canCancelEvents = {}
|
|
182
|
-
allValues.cancelable = {}
|
|
183
|
-
allValues.canceledOnTouchOutside = {}
|
|
184
|
-
allValues.canDelete = {}
|
|
185
|
-
allValues.canEdit = {}
|
|
186
|
-
allValues.canInsert = {}
|
|
187
|
-
allValues.canMove = {}
|
|
188
|
-
allValues.canScroll = {}
|
|
189
|
-
allValues.caseInsensitiveSearch = {}
|
|
190
|
-
allValues.checkable = {}
|
|
191
|
-
allValues.clearButtonMode = {}
|
|
192
|
-
allValues.clearOnEdit = {}
|
|
193
|
-
allValues.clipMode = {}
|
|
194
|
-
allValues.constraint = {}
|
|
195
|
-
allValues.contentHeightAndWidth = {}
|
|
196
|
-
allValues.curve = {}
|
|
197
|
-
allValues.datePickerStyle = {}
|
|
198
|
-
allValues.defaultItemTemplate = {}
|
|
199
|
-
allValues.dimBackgroundForSearch = {}
|
|
200
|
-
allValues.disableBounce = {}
|
|
201
|
-
allValues.disableContextMenu = {}
|
|
202
|
-
allValues.displayCaps = {}
|
|
203
|
-
allValues.displayHomeAsUp = {}
|
|
204
|
-
allValues.draggingType = {}
|
|
205
|
-
allValues.drawerIndicatorEnabled = {}
|
|
206
|
-
allValues.drawerLockMode = {}
|
|
207
|
-
allValues.dropShadow = {}
|
|
208
|
-
allValues.duration = {}
|
|
209
|
-
allValues.editable = {}
|
|
210
|
-
allValues.editing = {}
|
|
211
|
-
allValues.ellipsize = {}
|
|
212
|
-
allValues.enableCopy = {}
|
|
213
|
-
allValues.enabled = {}
|
|
214
|
-
allValues.enableJavascriptInterface = {}
|
|
215
|
-
allValues.enableReturnKey = {}
|
|
216
|
-
allValues.enableZoomControls = {}
|
|
217
|
-
allValues.exitOnClose = {}
|
|
218
|
-
allValues.extendBackground = {}
|
|
219
|
-
allValues.extendEdges = {}
|
|
220
|
-
allValues.extendSafeArea = {}
|
|
221
|
-
allValues.fastScroll = {}
|
|
222
|
-
allValues.filterAnchored = {}
|
|
223
|
-
allValues.filterAttribute = {}
|
|
224
|
-
allValues.filterCaseInsensitive = {}
|
|
225
|
-
allValues.filterTouchesWhenObscured = {}
|
|
226
|
-
allValues.flags = {}
|
|
227
|
-
allValues.flagSecure = {}
|
|
228
|
-
allValues.flip = {}
|
|
229
|
-
allValues.focusable = {}
|
|
230
|
-
allValues.fontStyle = {}
|
|
231
|
-
allValues.footerDividersEnabled = {}
|
|
232
|
-
allValues.format24 = {}
|
|
233
|
-
allValues.fullscreen = {}
|
|
234
|
-
allValues.gravity = {}
|
|
235
|
-
allValues.gridColumnsRowsStartEnd = {}
|
|
236
|
-
allValues.gridFlow = {}
|
|
237
|
-
allValues.gridSystem = {}
|
|
238
|
-
allValues.hasCheck = {}
|
|
239
|
-
allValues.hasChild = {}
|
|
240
|
-
allValues.hasDetail = {}
|
|
241
|
-
allValues.headerDividersEnabled = {}
|
|
242
|
-
allValues.hiddenBehavior = {}
|
|
243
|
-
allValues.hideLoadIndicator = {}
|
|
244
|
-
allValues.hidesBackButton = {}
|
|
245
|
-
allValues.hidesBarsOnSwipe = {}
|
|
246
|
-
allValues.hidesBarsOnTap = {}
|
|
247
|
-
allValues.hidesBarsWhenKeyboardAppears = {}
|
|
248
|
-
allValues.hideSearchOnSelection = {}
|
|
249
|
-
allValues.hideShadow = {}
|
|
250
|
-
allValues.hidesSearchBarWhenScrolling = {}
|
|
251
|
-
allValues.hintType = {}
|
|
252
|
-
allValues.hires = {}
|
|
253
|
-
allValues.homeButtonEnabled = {}
|
|
254
|
-
allValues.homeIndicatorAutoHidden = {}
|
|
255
|
-
allValues.horizontalWrap = {}
|
|
256
|
-
allValues.html = {}
|
|
257
|
-
allValues.icon = {}
|
|
258
|
-
allValues.iconified = {}
|
|
259
|
-
allValues.iconifiedByDefault = {}
|
|
260
|
-
allValues.iconIsMask = {}
|
|
261
|
-
allValues.ignoreSslError = {}
|
|
262
|
-
allValues.imageTouchFeedback = {}
|
|
263
|
-
allValues.includeFontPadding = {}
|
|
264
|
-
allValues.includeOpaqueBars = {}
|
|
265
|
-
allValues.keepScreenOn = {}
|
|
266
|
-
allValues.keepSectionsInSearch = {}
|
|
267
|
-
allValues.keyboardAppearance = {}
|
|
268
|
-
allValues.keyboardDismissMode = {}
|
|
269
|
-
allValues.keyboardDisplayRequiresUserAction = {}
|
|
270
|
-
allValues.keyboardType = {}
|
|
271
|
-
allValues.largeTitleDisplayMode = {}
|
|
272
|
-
allValues.largeTitleEnabled = {}
|
|
273
|
-
allValues.layout = {}
|
|
274
|
-
allValues.lazyLoadingEnabled = {}
|
|
275
|
-
allValues.leftButtonMode = {}
|
|
276
|
-
allValues.leftDrawerLockMode = {}
|
|
277
|
-
allValues.lightTouchEnabled = {}
|
|
278
|
-
allValues.listViewStyle = {}
|
|
279
|
-
allValues.loginKeyboardType = {}
|
|
280
|
-
allValues.loginReturnKeyType = {}
|
|
281
|
-
allValues.mixedContentMode = {}
|
|
282
|
-
allValues.modal = {}
|
|
283
|
-
allValues.moveable = {}
|
|
284
|
-
allValues.moving = {}
|
|
285
|
-
allValues.nativeSpinner = {}
|
|
286
|
-
allValues.navBarHidden = {}
|
|
287
|
-
allValues.navigationMode = {}
|
|
288
|
-
allValues.orientationModes = {}
|
|
289
|
-
allValues.overlayEnabled = {}
|
|
290
|
-
allValues.overrideCurrentAnimation = {}
|
|
291
|
-
allValues.overScrollMode = {}
|
|
292
|
-
allValues.showPagingControl = {}
|
|
293
|
-
allValues.pagingControlOnTop = {}
|
|
294
|
-
allValues.passwordKeyboardType = {}
|
|
295
|
-
allValues.passwordMask = {}
|
|
296
|
-
allValues.pickerType = {}
|
|
297
|
-
allValues.placement = {}
|
|
298
|
-
allValues.pluginState = {}
|
|
299
|
-
allValues.preventCornerOverlap = {}
|
|
300
|
-
allValues.preventDefaultImage = {}
|
|
301
|
-
allValues.previewActionStyle = {}
|
|
302
|
-
allValues.progressBarStyle = {}
|
|
303
|
-
allValues.progressIndicatorType = {}
|
|
304
|
-
allValues.pruneSectionsOnEdit = {}
|
|
305
|
-
allValues.requestedOrientation = {}
|
|
306
|
-
allValues.resultsSeparatorStyle = {}
|
|
307
|
-
allValues.returnKeyType = {}
|
|
308
|
-
allValues.reverse = {}
|
|
309
|
-
allValues.rightButtonMode = {}
|
|
310
|
-
allValues.rightDrawerLockMode = {}
|
|
311
|
-
allValues.scalesPageToFit = {}
|
|
312
|
-
allValues.scrollable = {}
|
|
313
|
-
allValues.scrollIndicators = {}
|
|
314
|
-
allValues.scrollIndicatorStyle = {}
|
|
315
|
-
allValues.scrollingEnabled = {}
|
|
316
|
-
allValues.scrollsToTop = {}
|
|
317
|
-
allValues.scrollType = {}
|
|
318
|
-
allValues.searchAsChild = {}
|
|
319
|
-
allValues.searchBarStyle = {}
|
|
320
|
-
allValues.searchHidden = {}
|
|
321
|
-
allValues.selectionGranularity = {}
|
|
322
|
-
allValues.selectionOpens = {}
|
|
323
|
-
allValues.selectionStyle = {}
|
|
324
|
-
allValues.separatorStyle = {}
|
|
325
|
-
allValues.shiftMode = {}
|
|
326
|
-
allValues.showAsAction = {}
|
|
327
|
-
allValues.showBookmark = {}
|
|
328
|
-
allValues.showCancel = {}
|
|
329
|
-
allValues.showHorizontalScrollIndicator = {}
|
|
330
|
-
allValues.showSearchBarInNavBar = {}
|
|
331
|
-
allValues.showSelectionCheck = {}
|
|
332
|
-
allValues.showUndoRedoActions = {}
|
|
333
|
-
allValues.showVerticalScrollIndicator = {}
|
|
334
|
-
allValues.smoothScrollOnTabClick = {}
|
|
335
|
-
allValues.statusBarStyle = {}
|
|
336
|
-
allValues.submitEnabled = {}
|
|
337
|
-
allValues.suppressReturn = {}
|
|
338
|
-
allValues.sustainedPerformanceMode = {}
|
|
339
|
-
allValues.swipeToClose = {}
|
|
340
|
-
allValues.switchStyle = {}
|
|
341
|
-
allValues.systemButton = {}
|
|
342
|
-
allValues.tabBarHidden = {}
|
|
343
|
-
allValues.tabbedBarStyle = {}
|
|
344
|
-
allValues.tabGroupStyle = {}
|
|
345
|
-
allValues.tableViewStyle = {}
|
|
346
|
-
allValues.tabsTranslucent = {}
|
|
347
|
-
allValues.textAlign = {}
|
|
348
|
-
allValues.theme = {}
|
|
349
|
-
allValues.titleAttributesShadow = {}
|
|
350
|
-
allValues.toolbarEnabled = {}
|
|
351
|
-
allValues.touchEnabled = {}
|
|
352
|
-
allValues.touchFeedback = {}
|
|
353
|
-
allValues.translucent = {}
|
|
354
|
-
allValues.useCompatPadding = {}
|
|
355
|
-
allValues.useSpinner = {}
|
|
356
|
-
allValues.verticalAlign = {}
|
|
357
|
-
allValues.verticalBounce = {}
|
|
358
|
-
allValues.viewShadow = {}
|
|
359
|
-
allValues.visible = {}
|
|
360
|
-
allValues.willHandleTouches = {}
|
|
361
|
-
allValues.willScrollOnStatusTap = {}
|
|
362
|
-
allValues.windowPixelFormat = {}
|
|
363
|
-
allValues.windowSoftInputMode = {}
|
|
364
|
-
allValues.wobble = {}
|
|
365
|
-
|
|
366
|
-
// ! Configurable properties
|
|
367
|
-
// INFO: configurableProperties: For glossary generator only... Do not move from this position.
|
|
368
|
-
allValues.configurableProperties = {}
|
|
369
|
-
|
|
370
|
-
allValues.activeTab = combineKeys(configFile.theme, base.spacing, 'activeTab')
|
|
371
|
-
allValues.backgroundLeftCap = combineKeys(configFile.theme, base.spacing, 'backgroundLeftCap')
|
|
372
|
-
allValues.backgroundPaddingBottom = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingBottom')
|
|
373
|
-
allValues.backgroundPaddingLeft = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingLeft')
|
|
374
|
-
allValues.backgroundPaddingRight = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingRight')
|
|
375
|
-
allValues.backgroundPaddingTop = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingTop')
|
|
376
|
-
allValues.backgroundTopCap = combineKeys(configFile.theme, base.spacing, 'backgroundTopCap')
|
|
377
|
-
allValues.borderRadius = combineKeys(configFile.theme, base.spacing, 'borderRadius')
|
|
378
|
-
allValues.borderWidth = combineKeys(configFile.theme, base.spacing, 'borderWidth')
|
|
379
|
-
allValues.bottomNavigation = combineKeys(configFile.theme, base.spacing, 'bottomNavigation')
|
|
380
|
-
allValues.cacheSize = combineKeys(configFile.theme, base.spacing, 'cacheSize')
|
|
381
|
-
allValues.columnCount = combineKeys(configFile.theme, { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12 }, 'columnCount')
|
|
382
|
-
allValues.contentHeight = combineKeys(configFile.theme, base.height, 'contentHeight')
|
|
383
|
-
allValues.contentWidth = combineKeys(configFile.theme, base.width, 'contentWidth')
|
|
384
|
-
allValues.countDownDuration = combineKeys(configFile.theme, base.spacing, 'countDownDuration')
|
|
385
|
-
allValues.elevation = combineKeys(configFile.theme, base.spacing, 'elevation')
|
|
386
|
-
allValues.fontFamily = combineKeys(configFile.theme, {}, 'fontFamily')
|
|
387
|
-
allValues.fontSize = combineKeys(configFile.theme, base.fontSize, 'fontSize')
|
|
388
|
-
allValues.fontWeight = combineKeys(configFile.theme, defaultTheme.fontWeight, 'fontWeight')
|
|
389
|
-
allValues.gap = combineKeys(configFile.theme, base.spacing, 'gap')
|
|
390
|
-
allValues.indentionLevel = combineKeys(configFile.theme, base.spacing, 'indentionLevel')
|
|
391
|
-
allValues.keyboardToolbarHeight = combineKeys(configFile.theme, base.spacing, 'keyboardToolbarHeight')
|
|
392
|
-
allValues.leftButtonPadding = combineKeys(configFile.theme, base.spacing, 'leftButtonPadding')
|
|
393
|
-
allValues.leftWidth = combineKeys(configFile.theme, base.width, 'leftWidth')
|
|
394
|
-
allValues.lines = combineKeys(configFile.theme, { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10 }, 'lines')
|
|
395
|
-
allValues.maxElevation = combineKeys(configFile.theme, base.spacing, 'maxElevation')
|
|
396
|
-
allValues.maxLines = combineKeys(configFile.theme, { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10 }, 'maxLines')
|
|
397
|
-
allValues.maxRowHeight = combineKeys(configFile.theme, base.height, 'maxRowHeight')
|
|
398
|
-
allValues.maxZoomScale = combineKeys(configFile.theme, { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5 }, 'maxZoomScale')
|
|
399
|
-
allValues.minimumFontSize = combineKeys(configFile.theme, base.fontSize, 'minimumFontSize')
|
|
400
|
-
allValues.minRowHeight = combineKeys(configFile.theme, base.height, 'minRowHeight')
|
|
401
|
-
allValues.minZoomScale = combineKeys(configFile.theme, { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5 }, 'minZoomScale')
|
|
402
|
-
allValues.offsets = combineKeys(configFile.theme, base.spacing, 'offsets')
|
|
403
|
-
allValues.opacity = combineKeys(configFile.theme, defaultTheme.opacity, 'opacity')
|
|
404
|
-
allValues.padding = combineKeys(configFile.theme, base.spacing, 'padding')
|
|
405
|
-
allValues.pagingControlAlpha = combineKeys(configFile.theme, defaultTheme.opacity, 'pagingControlAlpha')
|
|
406
|
-
allValues.pagingControlHeight = combineKeys(configFile.theme, base.height, 'pagingControlHeight')
|
|
407
|
-
allValues.pagingControlTimeout = combineKeys(configFile.theme, base.delay, 'pagingControlTimeout')
|
|
408
|
-
allValues.repeat = combineKeys(configFile.theme, { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, infinite: -1 }, 'repeat')
|
|
409
|
-
allValues.repeatCount = combineKeys(configFile.theme, { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, infinite: -1 }, 'repeatCount')
|
|
410
|
-
allValues.rightButtonPadding = combineKeys(configFile.theme, base.spacing, 'rightButtonPadding')
|
|
411
|
-
allValues.rightWidth = combineKeys(configFile.theme, base.width, 'rightWidth')
|
|
412
|
-
allValues.rotate = combineKeys(configFile.theme, defaultTheme.rotate, 'rotate')
|
|
413
|
-
|
|
414
|
-
// ! Custom Color properties
|
|
415
|
-
// INFO: colorProperties: For glossary generator only... Do not move from this position.
|
|
416
|
-
allValues.colorProperties = {}
|
|
417
|
-
|
|
418
|
-
allValues.activeTintColor = combineKeys(configFile.theme, base.colors, 'activeTintColor')
|
|
419
|
-
allValues.activeTitleColor = combineKeys(configFile.theme, base.colors, 'activeTitleColor')
|
|
420
|
-
allValues.backgroundColor = combineKeys(configFile.theme, base.colors, 'backgroundColor')
|
|
421
|
-
allValues.backgroundDisabledColor = combineKeys(configFile.theme, base.colors, 'backgroundDisabledColor')
|
|
422
|
-
allValues.backgroundFocusedColor = combineKeys(configFile.theme, base.colors, 'backgroundFocusedColor')
|
|
423
|
-
allValues.backgroundGradient = combineKeys(configFile.theme, base.colors, 'backgroundGradient')
|
|
424
|
-
allValues.backgroundSelectedColor = combineKeys(configFile.theme, base.colors, 'backgroundSelectedColor')
|
|
425
|
-
allValues.backgroundSelectedGradient = combineKeys(configFile.theme, base.colors, 'backgroundSelectedGradient')
|
|
426
|
-
allValues.badgeColor = combineKeys(configFile.theme, base.colors, 'badgeColor')
|
|
427
|
-
allValues.barColor = combineKeys(configFile.theme, base.colors, 'barColor')
|
|
428
|
-
allValues.borderColor = combineKeys(configFile.theme, base.colors, 'borderColor')
|
|
429
|
-
allValues.currentPageIndicatorColor = combineKeys(configFile.theme, base.colors, 'currentPageIndicatorColor')
|
|
430
|
-
allValues.dateTimeColor = combineKeys(configFile.theme, base.colors, 'dateTimeColor')
|
|
431
|
-
allValues.disabledColor = combineKeys(configFile.theme, base.colors, 'disabledColor')
|
|
432
|
-
allValues.highlightedColor = combineKeys(configFile.theme, base.colors, 'highlightedColor')
|
|
433
|
-
allValues.hintTextColor = combineKeys(configFile.theme, base.colors, 'hintTextColor')
|
|
434
|
-
allValues.imageTouchFeedbackColor = combineKeys(configFile.theme, base.colors, 'imageTouchFeedbackColor')
|
|
435
|
-
allValues.pageIndicatorColor = combineKeys(configFile.theme, base.colors, 'pageIndicatorColor')
|
|
436
|
-
allValues.pagingControlColor = combineKeys(configFile.theme, base.colors, 'pagingControlColor')
|
|
437
|
-
allValues.pullBackgroundColor = combineKeys(configFile.theme, base.colors, 'pullBackgroundColor')
|
|
438
|
-
allValues.resultsBackgroundColor = combineKeys(configFile.theme, base.colors, 'resultsBackgroundColor')
|
|
439
|
-
allValues.resultsSeparatorColor = combineKeys(configFile.theme, base.colors, 'resultsSeparatorColor')
|
|
440
|
-
allValues.selectedBackgroundColor = combineKeys(configFile.theme, base.colors, 'selectedBackgroundColor')
|
|
441
|
-
allValues.selectedBackgroundGradient = combineKeys(configFile.theme, base.colors, 'selectedBackgroundGradient')
|
|
442
|
-
allValues.selectedColor = combineKeys(configFile.theme, base.colors, 'selectedColor')
|
|
443
|
-
allValues.separatorColor = combineKeys(configFile.theme, base.colors, 'separatorColor')
|
|
444
|
-
allValues.shadowColor = combineKeys(configFile.theme, base.colors, 'shadowColor')
|
|
445
|
-
allValues.tabsBackgroundColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundColor')
|
|
446
|
-
allValues.tabsBackgroundDisabledColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundDisabledColor')
|
|
447
|
-
allValues.tabsBackgroundFocusedColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundFocusedColor')
|
|
448
|
-
allValues.tabsBackgroundSelectedColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundSelectedColor')
|
|
449
|
-
allValues.textColor = combineKeys(configFile.theme, base.colors, 'textColor')
|
|
450
|
-
allValues.tintColor = combineKeys(configFile.theme, base.colors, 'tintColor')
|
|
451
|
-
allValues.titleColor = combineKeys(configFile.theme, base.colors, 'titleColor')
|
|
452
|
-
allValues.titleDisabledColor = combineKeys(configFile.theme, base.colors, 'titleDisabledColor')
|
|
453
|
-
allValues.titleFocusedColor = combineKeys(configFile.theme, base.colors, 'titleFocusedColor')
|
|
454
|
-
allValues.titleHighlightedColor = combineKeys(configFile.theme, base.colors, 'titleHighlightedColor')
|
|
455
|
-
allValues.titleSelectedColor = combineKeys(configFile.theme, base.colors, 'titleSelectedColor')
|
|
456
|
-
allValues.touchFeedbackColor = combineKeys(configFile.theme, base.colors, 'touchFeedbackColor')
|
|
457
|
-
allValues.viewShadowColor = combineKeys(configFile.theme, base.colors, 'viewShadowColor')
|
|
458
|
-
allValues.navTintColor = combineKeys(configFile.theme, base.colors, 'navTintColor')
|
|
459
|
-
|
|
460
|
-
return allValues
|
|
461
|
-
}
|