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.
@@ -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 '../src/shared/brand-colors.js'
16
+ import { colores } from '../../shared/brand-colors.js'
18
17
  export { colores }
19
- const purgeLabel = colores.purgeLabel
20
18
 
21
- import * as helpers from '../src/shared/helpers.js'
22
- import { getConfigFile } from '../src/shared/config-manager.js'
23
- import { projectsConfigJS } from '../src/shared/constants.js'
24
- const tiCompletionsFile = require('../lib/completions/titanium/completions-v3.json')
25
-
26
- const logger = {
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, '../dist/glossary/')
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, '../lib/templates/tailwind/custom-template.tss'), 'utf8')
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, '../dist/utilities.tss'), tailwindStyles)
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, '../dist/glossary/')
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('../lib/templates/tailwind/compoundTemplate.json')
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
- // Merge extend values into theme (same as colors, spacing, etc.)
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
- // Merge user config WITH defaults, then write back to configFile.theme
588
- // so that getTiUIComponents/combineKeys picks up the full merged object
589
- configFile.theme.Window = _.merge({ default: { backgroundColor: '#FFFFFF' } }, configFile.theme.Window)
590
- configFile.theme.ImageView = _.merge({ ios: { hires: true } }, configFile.theme.ImageView)
591
- configFile.theme.View = _.merge({ default: { width: 'Ti.UI.SIZE', height: 'Ti.UI.SIZE' } }, configFile.theme.View)
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/experimental/tailwind-classes/')
834
- saveFile(cwd + `/purgetss/experimental/tailwind-classes/${key}.tss`, classes)
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 '../../../experimental/completions2.js'
11
+ import { autoBuildUtilitiesTSS } from './auto-utilities-builder.js'
12
12
 
13
13
  /**
14
- * Build Tailwind (AUTO mode using experimental completions engine)
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
- }