@maccesar/titools 5.0.0 → 5.1.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.
Files changed (41) hide show
  1. package/README.md +26 -3
  2. package/package.json +1 -1
  3. package/skills/purgetss/SKILL.md +27 -24
  4. package/skills/purgetss/references/EXAMPLES.md +52 -41
  5. package/skills/purgetss/references/adopting-purgetss.md +137 -0
  6. package/skills/purgetss/references/animation-advanced.md +18 -5
  7. package/skills/purgetss/references/animation-system.md +21 -9
  8. package/skills/purgetss/references/app-branding.md +36 -97
  9. package/skills/purgetss/references/appearance-module.md +70 -5
  10. package/skills/purgetss/references/apply-directive.md +14 -6
  11. package/skills/purgetss/references/arbitrary-values.md +59 -23
  12. package/skills/purgetss/references/brand-padding-geometry.md +105 -0
  13. package/skills/purgetss/references/class-categories.md +684 -272
  14. package/skills/purgetss/references/class-index-properties.md +713 -607
  15. package/skills/purgetss/references/class-index.md +149 -84
  16. package/skills/purgetss/references/classic-projects.md +3 -3
  17. package/skills/purgetss/references/cli-commands.md +27 -213
  18. package/skills/purgetss/references/color-commands.md +218 -0
  19. package/skills/purgetss/references/configurable-properties.md +17 -2
  20. package/skills/purgetss/references/custom-fonts.md +21 -16
  21. package/skills/purgetss/references/custom-rules.md +7 -7
  22. package/skills/purgetss/references/customization-deep-dive.md +14 -11
  23. package/skills/purgetss/references/dynamic-component-creation.md +104 -61
  24. package/skills/purgetss/references/grid-layout.md +21 -24
  25. package/skills/purgetss/references/icon-fonts.md +37 -20
  26. package/skills/purgetss/references/installation-setup.md +1 -1
  27. package/skills/purgetss/references/ios-large-titles.md +12 -11
  28. package/skills/purgetss/references/migration-guide.md +101 -10
  29. package/skills/purgetss/references/multi-density-images.md +44 -24
  30. package/skills/purgetss/references/opacity-modifier.md +1 -1
  31. package/skills/purgetss/references/performance-tips.md +5 -4
  32. package/skills/purgetss/references/platform-modifiers.md +2 -2
  33. package/skills/purgetss/references/purgetss-ui-classic.md +21 -5
  34. package/skills/purgetss/references/semantic-colors.md +20 -13
  35. package/skills/purgetss/references/smart-mappings.md +8 -7
  36. package/skills/purgetss/references/svg-pipeline.md +21 -13
  37. package/skills/purgetss/references/tikit-components.md +2 -2
  38. package/skills/purgetss/references/titanium-resets.md +27 -17
  39. package/skills/purgetss/references/ui-ux-design.md +38 -26
  40. package/skills/purgetss/references/values-and-units.md +1 -2
  41. package/skills/purgetss/references/version-history.md +32 -4
@@ -1,12 +1,27 @@
1
1
  # PurgeTSS Class Index
2
2
 
3
- **Based on the actual PurgeTSS `utilities.tss` file - 23,000+ unique utility classes across 364 unique prefixes covering 416 Titanium properties** (class count grows with each Titanium SDK / Font Awesome release; prefix and property counts are stable)
3
+ <!-- GENERATED:counts START -->
4
+ **Generated from `utilities.tss` (PurgeTSS 7.17.1): 23,343 unique classes, 403 first segments, 620 Titanium properties.** Counts grow with each Titanium SDK and icon-font release.
5
+ <!-- GENERATED:counts END -->
4
6
 
5
7
  Before suggesting ANY class, verify it exists:
6
8
  ```bash
7
9
  grep -E "PATTERN" ./purgetss/styles/utilities.tss
8
10
  ```
9
11
 
12
+ <!-- TOC-START -->
13
+ ## Contents
14
+
15
+ - [PurgeTSS Naming Conventions](#purgetss-naming-conventions)
16
+ - [Class Names You Cannot Derive from the Property](#class-names-you-cannot-derive-from-the-property)
17
+ - [All Titanium Properties with Classes](#all-titanium-properties-with-classes)
18
+ - [Community-Discovered Patterns](#community-discovered-patterns)
19
+ - [All First Segments (Alphabetical)](#all-first-segments-alphabetical)
20
+ - [Quick Verification Commands](#quick-verification-commands)
21
+ - [When to Use Direct Properties (No Classes)](#when-to-use-direct-properties-no-classes)
22
+
23
+ <!-- TOC-END -->
24
+
10
25
  ## PurgeTSS Naming Conventions
11
26
 
12
27
  ### How Classes Are Generated from Titanium Properties
@@ -45,7 +60,7 @@ returnKeyType → return-key-type-*
45
60
  | Pattern | Property | Class Example |
46
61
  | ------------------- | ------------------------ | ---------------------- |
47
62
  | `*BackgroundColor` | `resultsBackgroundColor` | `results-bg-gray-900` |
48
- | `*Background*Color` | `barBackgroundColor` | `bar-bg-gray-900` |
63
+ | `*Background*Color` | `statusBarBackgroundColor` | `status-bar-bg-gray-900` |
49
64
  | `*Color` | `titleColor` | `title-gray-900` |
50
65
  | `*TextColor` | `titleTextColor` | `title-text-gray-900` |
51
66
  | `TintColor` | `activeTintColor` | `active-tint-gray-900` |
@@ -54,7 +69,7 @@ returnKeyType → return-key-type-*
54
69
  - `Background` → `bg-`
55
70
  - `Color` → (omitted, color value follows)
56
71
  - `TextColor` → `text-`
57
- - `TintColor` → `tint-`
72
+ - `TintColor` → `tint-` when it has a prefix (`activeTintColor` → `active-tint-*`). The bare `tintColor` is `tint-color-*`; `tint-*` sets the MaskedImage `tint` property.
58
73
 
59
74
  #### 4. No kebab-case Conversion
60
75
 
@@ -85,7 +100,7 @@ Each property section in the file includes documentation:
85
100
  - `// Component(s): Ti.UI.View, ...` - Which components use these classes
86
101
  - `// Description: ...` - Optional description
87
102
 
88
- **Exception:** Only `// debug` exists without a `Property:` label.
103
+ **Exception:** a few blocks carry a free-text comment instead of a `Property:` label, e.g. `// Utilities for controlling an element's margin.` above `m-*`, `// debug`, and the Animation-module drag options (`drag-apply`, `drag-animate`, `move-by-animation`).
89
104
 
90
105
  Search for any property to see its available classes:
91
106
  ```bash
@@ -104,50 +119,99 @@ grep -B 2 "Component(s):.*Ti.UI.ListView" ./purgetss/styles/utilities.tss | grep
104
119
 
105
120
  ---
106
121
 
107
- ## Multiple Properties Grouped Together
108
-
109
- Some PurgeTSS classes combine multiple Titanium properties under a single class prefix:
110
-
111
- | Class Prefix | Properties | Description |
112
- | ------------------------ | -------------------------------------------------------------- | -------------------------- |
113
- | `anchor-point-*` | `anchorPoint` | Animation/View positioning |
114
- | `autocapitalization-*` | `autocapitalization` | Text capitalization |
115
- | `bg-gradient-*` | `backgroundGradient` | Linear gradients |
116
- | `bg-radial-*` | `backgroundGradient` | Radial gradients (iOS) |
117
- | `clip-mode-*` | `clipMode` | iOS clipping |
118
- | `content-*` | `contentWidth`, `contentHeight` | ScrollView content size |
119
- | `curve-*` | `curve` | Animation easing |
120
- | `dragging-*` | `draggingType` | Animation module dragging |
121
- | `filter-attribute-*` | `filterAttribute` | ListView filtering |
122
- | `flip-*` | `flip` | Animation flipping |
123
- | `font-*` | `fontFamily`, `fontSize`, `fontStyle`, `fontWeight` | Typography (v7.5.3+: `font-sans`, `font-serif`, `font-mono` family classes) |
124
- | `grid-*` | Various | Grid layout system |
125
- | `h-*` | `height` | All components |
126
- | `hint-*` | `hintTextColor` | TextField placeholder |
127
- | `keep-z-index` | `animationProperties.keepZIndex` (v7.4.0+) | Preserves z-order during drag when used with `transition` |
128
- | `layout-*` | `layout` | View layout modes |
129
- | `minimum-font-size-*` | `minimumFontSize` | Label auto-shrink |
130
- | `navigation-*` | `navigationMode` | Navigation modes |
131
- | `orientation-modes-*` | `orientationModes` | Supported orientations |
132
- | `origin-*` | `anchorPoint` | Transform origin |
133
- | `padding-*` | `padding` | Android-specific padding |
134
- | `rotate-*` | `rotate` | 2D Matrix rotation |
135
- | `scale-*` | `scale` | 2D Matrix scaling |
136
- | `scroll-type-*` | `scrollType` | Android scroll type |
137
- | `shadow-*` | `shadowOffset`, `shadowRadius`, `shadowColor` | Box shadows |
138
- | `show-*scroll-indicator` | `showHorizontalScrollIndicator`, `showVerticalScrollIndicator` | ScrollView |
139
- | `snap-*` | `animationProperties.snap.{back, center, magnet}` (v7.4.0+) | Draggable drop behaviors |
140
- | `status-bar-style-*` | `statusBarStyle` | iOS status bar |
141
- | `tint-*` | `tintColor` | View/Button tinting |
142
- | `title-*` | `titleAttributes: color/shadow` | iOS title styling |
143
- | `toggle-*` | `toggle` | Animation toggle |
144
- | `w-*` | `width` | All components |
145
- | `wh-*` | `width`, `height` | Combined width/height |
146
-
122
+ ## Class Names You Cannot Derive from the Property
123
+
124
+ For these families the class stem is not the property name in kebab-case, so guessing from the property fails. Generated from `utilities.tss`; the full property table is in [class-index-properties.md](./class-index-properties.md).
125
+
126
+ <!-- GENERATED:irregular START -->
127
+ | Classes | Property | Components |
128
+ | --- | --- | --- |
129
+ | `-rotate-*` | `rotate` | For the Animation Component |
130
+ | `alert-dialog-style`, `alert-dialog-style-login-and-password`, `alert-dialog-style-plain-text-input`, `alert-dialog-style-secure-text-input` | `style` | — |
131
+ | `allows-bg-location-updates`, `allows-bg-location-updates-false` | `allowsBackgroundLocationUpdates` | Ti.Geolocation |
132
+ | `allows-picture-in-media-playback`, `allows-picture-in-media-playback-false` | `allowsPictureInPictureMediaPlayback` | iOS.WebViewConfiguration |
133
+ | `allows-tightening-for-truncation`, `allows-tightening-for-truncation-false` | `allowsDefaultTighteningForTruncation` | ParagraphAttribute |
134
+ | `badge-bg-*` | `badgeBackgroundColor` | Tab |
135
+ | `bg-*` | `backgroundColor` | View, Ti.Media.VideoPlayer, Android.CardView +40 more |
136
+ | `bg-auto`, `bg-fill`, `bg-none`, `bg-cover`, `bg-contain` | `scalingMode` | ImageView |
137
+ | `bg-disabled-*` | `backgroundDisabledColor` | View, Ti.Media.VideoPlayer, Android.CardView +25 more |
138
+ | `bg-focused-*` | `backgroundFocusedColor` | View, Ti.Media.VideoPlayer, Android.CardView +25 more |
139
+ | `bg-gradient`, `bg-gradient-*` | `backgroundGradient` | MaskedImage |
140
+ | `bg-left-cap-*` | `backgroundLeftCap` | View, Ti.Media.VideoPlayer, Button +27 more |
141
+ | `bg-linear`, `bg-linear-*` | `backgroundGradient` | MaskedImage |
142
+ | `bg-padding-bottom-*` | `backgroundPaddingBottom` | Label |
143
+ | `bg-padding-left-*` | `backgroundPaddingLeft` | Label |
144
+ | `bg-padding-right-*` | `backgroundPaddingRight` | Label |
145
+ | `bg-padding-top-*` | `backgroundPaddingTop` | Label |
146
+ | `bg-radial`, `bg-radial-*` | `backgroundGradient` | ListItem, View |
147
+ | `bg-selected-*` | `backgroundSelectedColor` | View, Ti.Media.VideoPlayer, Android.CardView +30 more |
148
+ | `bg-selected-from-*` | `backgroundSelectedGradient` | ListItem, View |
149
+ | `bg-selected-to-*` | `backgroundSelectedGradient` | ListItem, View |
150
+ | `bg-top-cap-*` | `backgroundTopCap` | View, Ti.Media.VideoPlayer, Button +27 more |
151
+ | `block`, `hidden` | `visible` | View, Ti.Android.ActionBar, Ti.Android.MenuItem +37 more |
152
+ | `border`, `border-*` | `borderWidth` | View, Ti.Media.VideoPlayer, Android.CardView +32 more |
153
+ | `clip-enabled`, `clip-disabled` | `clipMode` | View |
154
+ | `col-count-*` | `columnCount` | DashboardView |
155
+ | `col-span-*` | `width` | ActivityIndicator, Animation, iPad.Popover +2 more |
156
+ | `content-w-auto`, `content-h-auto`, `content-w-screen`, `content-h-screen`, `content-auto`, `content-screen` | `contentWidth`, `contentHeight` | ScrollView |
157
+ | `dim-bg-for-search`, `dim-bg-for-search-false` | `dimBackgroundForSearch` | ListView, TableView |
158
+ | `drag-apply`, `drag-animate` | `draggingType` | For the Animation Component |
159
+ | `drop-shadow`, `drop-shadow-*` | `shadowOffset`, `shadowRadius`, `shadowColor` | Button, Label |
160
+ | `ease-in`, `ease-out`, `ease-linear`, `ease-in-out` | `curve` | Animation |
161
+ | `font-mono`, `font-sans`, `font-serif` | `font.fontFamily` | ActivityIndicator, Button, Label +9 more |
162
+ | `from-*` | `backgroundGradient` | ListItem, View |
163
+ | `gap-*` | `top`, `right`, `bottom`, `left` | ActivityIndicator, Animation, View, Window |
164
+ | `grid-cols-*` | `width` | ActivityIndicator, Animation, iPad.Popover +2 more |
165
+ | `grid-rows-*` | `height` | ActivityIndicator, Animation, iPad.Popover +2 more |
166
+ | `grid`, `grid-flow-col`, `grid-flow-row` | `layout`, `width`, `height` | View |
167
+ | `horizontal-constraint`, `vertical-constraint` | `constraint` | Animation |
168
+ | `iconified-by`, `iconified-by-false` | `iconifiedByDefault` | Android.SearchView, SearchBar |
169
+ | `italic`, `not-italic` | `font.fontStyle` | ActivityIndicator, Button, Label +9 more |
170
+ | `items-start`, `items-end`, `items-center` | `top`, `bottom`, `width`, `height` | ActivityIndicator, Animaiton, View, Window |
171
+ | `left-track-cap-*` | `leftTrackLeftCap` | Slider |
172
+ | `line-h-multiple-*` | `lineHeightMultiple` | ParagraphAttribute |
173
+ | `list-item-template`, `list-item-template-contacts`, `list-item-template-settings`, `list-item-template-subtitle` | `defaultItemTemplate` | ListView |
174
+ | `m-*`, `my-*`, `mx-*`, `mt-*`, `mr-*`, `mb-*`, `ml-*`, `-m-*`, … | `top`, `right`, `bottom`, `left` | — |
175
+ | `minimum-text-*` | `minimumFontSize` | label, TextField |
176
+ | `object-auto`, `object-fill`, `object-none`, `object-cover`, `object-contain` | `scalingMode` | ImageView |
177
+ | `orientation-landscape-left`, `orientation-landscape-right`, `orientation-portrait`, `orientation-upside-portrait`, `orientation-landscape`, `orientation-all` | `orientationModes` | NavigationWindow, TabGroup, Window, iOS.SplitWindow |
178
+ | `origin-*` | `anchorPoint` | Animation, View |
179
+ | `overflow-x-scroll`, `overflow-y-scroll`, `overflow-x-hidden`, `overflow-y-hidden`, `overflow-scroll`, `overflow-hidden` | `showHorizontalScrollIndicator`, `showVerticalScrollIndicator` | ScrollView |
180
+ | `p-*`, `py-*`, `px-*`, `pt-*`, `pr-*`, `pb-*`, `pl-*` | `padding` | Android.CardView, TextArea, TextField |
181
+ | `picture-in-enabled`, `picture-in-enabled-false` | `pictureInPictureEnabled` | Ti.Media.VideoPlayer |
182
+ | `placeholder-*` | `hintTextColor` | Android.SearchView, SearchBar, TextArea, TextField |
183
+ | `platform-w`, `platform-h`, `platform-wh`, `platform-w-inverted`, `platform-h-inverted`, `platform-wh-inverted`, `inverted-platform-w`, `inverted-platform-h` | `width`, `height` | ActivityIndicator, Animation, iPad.Popover, View |
184
+ | `pointer-events-auto`, `pointer-events-none` | `touchEnabled` | View |
185
+ | `portrait`, `upside-portrait`, `landscape-left`, `landscape-right`, `landscape` | `orientationModes` | NavigationWindow, TabGroup, Window, iOS.SplitWindow |
186
+ | `progress-bar-style-bar`, `progress-bar-style`, `progress-bar-style-plain` | `style` | ProgressBar |
187
+ | `pull-bg-*` | `pullBackgroundColor` | View, Ti.Media.VideoPlayer, Button +31 more |
188
+ | `r-drawable-*` | `icon` | — |
189
+ | `results-bg-*` | `resultsBackgroundColor` | ListView, TableView |
190
+ | `rounded-full`, `rounded-full-*` | `width`, `height`, `borderRadius` | View, Ti.Media.VideoPlayer, Android.CardView +32 more |
191
+ | `rounded`, `rounded-*` | `borderRadius` | View, Ti.Media.VideoPlayer, Android.CardView +32 more |
192
+ | `row-span-*` | `height` | ActivityIndicator, Animation, iPad.Popover +2 more |
193
+ | `selected-bg-*` | `selectedBackgroundColor` | ListItem, OptionBar, TabbedBar, TableViewRow |
194
+ | `shadow`, `shadow-*` | `viewShadowOffset`, `viewShadowRadius`, `viewShadowColor`, `elevation` | iOS: Ti.UI.View, Android: Ti.UI.Android.CardView, Animation, View |
195
+ | `show-bg-location-indicator`, `show-bg-location-indicator-false` | `showBackgroundLocationIndicator` | Ti.Geolocation |
196
+ | `show-search-bar-in-nav`, `show-search-bar-in-nav-false` | `showSearchBarInNavBar` | ListView, TableView |
197
+ | `size-*` | `width`, `height` | View, Ti.Blob, Ti.Media.VideoPlayer +43 more |
198
+ | `status-bar-bg-*` | `statusBarBackgroundColor` | iOS |
199
+ | `status-bar`, `status-bar-dark`, `status-bar-light` | `statusBarStyle` | Window |
200
+ | `tabs-bg-*` | `tabsBackgroundColor` | TabGroup |
201
+ | `tabs-bg-selected-*` | `tabsBackgroundSelectedColor` | TabGroup |
202
+ | `text-*` | `font.fontSize` | ActivityIndicator, Button, Label +9 more |
203
+ | `text-center`, `text-justify`, `text-left`, `text-right` | `textAlign` | Button, Label, Picker +4 more |
204
+ | `to-*` | `backgroundGradient` | ListItem, View |
205
+ | `transparent`, `black`, `white`, `slate-*`, `gray-*`, `zinc-*`, `neutral-*`, `stone-*`, … | `color` | Ti.Android.Notification, Ti.Android.R, ActivityIndicator +20 more |
206
+ | `uppercase`, `normal-case`, `capitalize`, `sentences` | `autocapitalization` | SearchBar, TextArea, TextField |
207
+ | `vertical`, `horizontal`, `composite` | `layout` | View, Ti.Android.R, Ti.Media.VideoPlayer +31 more |
208
+ | `wh-*` | `width`, `height` | View, Ti.Blob, Ti.Media.VideoPlayer +43 more |
209
+ | `zoom-*` | `animationProperties.open`, `animationProperties.complete`, `animationProperties.close` | Animation |
210
+ <!-- GENERATED:irregular END -->
147
211
 
148
212
  ---
149
213
 
150
- ## All 416 Titanium Properties with Classes
214
+ ## All Titanium Properties with Classes
151
215
 
152
216
  The full A–Z property→class table is maintained in a dedicated reference to keep this index scannable:
153
217
 
@@ -168,12 +232,10 @@ The rest of this document collects conventions, prohibitions, and insights surfa
168
232
  | `flex` | Flexbox not supported | `horizontal` or `vertical` |
169
233
  | `justify-between` | Flexbox not supported | Use margins/positioning |
170
234
  | `justify-center` | Flexbox not supported | Use margins/positioning |
171
- | `items-center` | Different meaning in Titanium | Use layout + sizing |
172
- | `w-full` | Different meaning than Tailwind | Use `w-full` for 100%, `w-screen` for FILL |
235
+ | `items-center` | Exists, but only as a grid helper: `{ width: Ti.UI.FILL, height: Ti.UI.FILL }` | Use layout + sizing |
173
236
  | `flex-wrap` | Flexbox not supported | Not supported |
174
237
  | `flex-grow` | Flexbox not supported | Not supported |
175
238
  | `flex-shrink` | Flexbox not supported | Not supported |
176
- | `rounded-full` | Requires size suffix | `rounded-full-12` (size × 4 = diameter) |
177
239
  | `space-x-*` | Space utilities not like Tailwind | Use `gap-*` |
178
240
  | `space-y-*` | Space utilities not like Tailwind | Use `gap-*` |
179
241
  | `leading-*` | Uses different prefix | Use `line-h-multiple-*` or `line-spacing-*` |
@@ -181,7 +243,7 @@ The rest of this document collects conventions, prohibitions, and insights surfa
181
243
 
182
244
  ### Key Insights from Real Data
183
245
 
184
- 1. **21,236 unique classes** across **364 unique prefixes** - Far more than initially documented
246
+ 1. **Tens of thousands of classes** - see the generated counts at the top of this file
185
247
  2. **Extensive state management** - Hundreds of `*enabled`, `*-false` classes for UI states
186
248
  3. **Platform-specific classes** - Many iOS/Android specific variants (like `[platform=ios]`)
187
249
  4. **Complete color coverage** - All 22 Tailwind v3 colors with 11 shades each (50-950) = 242 color variants per prefix
@@ -194,45 +256,49 @@ The rest of this document collects conventions, prohibitions, and insights surfa
194
256
 
195
257
  ---
196
258
 
197
- ## All 364 Unique Prefixes (Alphabetical)
259
+ ## All First Segments (Alphabetical)
198
260
 
199
261
  > **NOTE**: v7.4.0 introduced `snap-back`, `snap-back-false`, `snap-center`, `snap-center-false`, `snap-magnet`, `snap-magnet-false`, `keep-z-index`, and `keep-z-index-false`. The current runtime implements back, center, and touch-start z-index preservation but does not read `snap.magnet`; do not suggest the generated magnet classes as working behavior. v7.5.3 added `font-sans`, `font-serif`, and `font-mono`.
200
262
 
201
263
 
264
+ <!-- GENERATED:prefixes START -->
202
265
  ```
203
- accessibility, accessory, accuracy, action, active, activity, alignment, all, allow, allows,
204
- amber, anchor, animated, app, arrow, aspect, audio, authentication, auto, autocapitalization,
205
- autocorrect, autofill, autohide, autoplay, autorepeat, autoreverse, autorotate, availability,
206
- available, backfill, background, backward, badge, bar, battery, bg, black, block, blue, border,
207
- bottom, break, bubble, bubbles, button, bypass, cache, calendar, camera, can, cancel,
208
- cancelable, canceled, capitalize, case, charset, checkable, checked, clear, clip, closed,
209
- code, col, colors, compact, composite, compression, connected, contacts, content, continuous,
210
- count, current, curve, custom, cyan, date, debug, delay, destructive, dim, disable, disabled,
211
- display, drag, drawer, drop, duration, ease, editable, editing, elevation, eligible, ellipsize,
212
- emerald, enable, enabled, exact, exit, experimental, extend, fast, filter, fixed, flag, flip,
266
+ accessibility, accessory, accuracy, action, activation, active, activity, alert, alignment, all,
267
+ allow, allows, amber, anchor, animated, animation, app, arrow, aspect, audio, authentication,
268
+ authorization, auto, autocapitalization, autocorrect, autofill, autohide, autoplay, autorepeat,
269
+ autoreverse, autorotate, availability, available, backfill, background, backward, badge, bar,
270
+ battery, behavior, bg, black, block, blue, border, bottom, break, bubble, bubbles, button, bypass,
271
+ cache, calendar, camera, can, cancel, cancelable, canceled, capitalize, car, case, category, charset,
272
+ checkable, checked, clear, clip, closed, code, col, collision, colors, compact, composite,
273
+ compression, connected, contacts, content, continuous, count, critical, current, curve, custom, cyan,
274
+ date, debug, deceleration, defaults, delay, destructive, dim, disable, disabled, display, drag,
275
+ drawer, drop, duration, ease, editable, editing, effect, elevation, eligible, ellipsize, emerald,
276
+ enable, enabled, exact, exit, experimental, extend, fast, filter, fixed, flag, flags, flip,
213
277
  focusable, font, footer, force, format, format24, frequency, from, fuchsia, fullscreen, gap,
214
- generated, getters, gray, green, grid, group, grouping, h, handle, has, header, hidden, hide,
215
- hides, highlighted, hint, hires, home, horizontal, hour12, html, httponly, hyphenation, icon,
216
- iconified, idle, ignore, image, in, include, indention, indicator, indigo, input, inputs,
217
- inset, interactive, is, italic, items, java, keep, keyboard, kind, landscape, large, launch,
218
- layer, lazy, left, letter, light, lime, line, lines, list, loading, location, login, looping,
219
- m, main, manual, master, max, maximum, mb, media, method, min, minimum, mixed, ml, modal,
220
- mode, move, moveable, movie, moving, mr, mt, multiple, mx, my, native, nav, navigation,
221
- needs, network, neutral, no, normal, not, numeric, object, on, online, opacity, opaque,
222
- opaquebackground, opaquebg, orange, orientation, origin, outputs, overflow, overlay, override,
223
- p, padding, page, paging, paragraph, password, path, pause, pb, persistent, picture, pink,
224
- pl, placeholder, platform, playback, pointer, portrait, position, pr, prevent, proximity,
225
- prune, pt, pull, purple, px, py, ready, recording, red, remote, repeat, requires, results,
226
- return, reverse, right, role, rose, rotate, rounded, row, running, save, scale, scales,
227
- scaling, scroll, scrollable, scrolling, scrolls, search, section, secure, selected, selection,
228
- sentences, separator, shadow, shift, show, shows, shuffle, size, sky, slate, smooth, snap, sorted,
229
- source, split, state, status, stone, stopped, style, submit, subtitle, success, suppress,
230
- suppresses, sustained, swipe, swipeable, tab, tabs, target, teal, text, theme, throw, thumb,
231
- timeout, tint, title, tls, to, toggle, toolbar, top, torch, touch, trace, track, translucent,
232
- transparent, treat, type, unique, update, uppercase, upright, upside, use, user, valid,
233
- validates, value, vertical, video, view, violet, visibility, visible, w, waits, wh, which,
234
- white, will, wobble, wraps, x, y, yellow, z, zinc, zoom
278
+ generated, getters, gravity, gray, green, grid, group, grouping, h, handle, has, header, hidden,
279
+ hide, hides, highlighted, hint, hires, home, horizontal, hour12, html, httponly, hyphenation, icon,
280
+ iconified, idle, ignore, image, importance, in, include, indention, indicator, indigo, injection,
281
+ input, inputs, inset, interactive, inverted, is, italic, item, items, java, keep, keyboard, kind,
282
+ landscape, large, launch, layer, lazy, left, letter, light, lime, line, lines, list, loading,
283
+ location, lock, lockscreen, login, looping, m, main, manual, master, max, maximum, mb, media, method,
284
+ min, minimize, minimum, mixed, ml, modal, mode, move, moveable, movie, moving, mr, mt, multiple, mx,
285
+ my, native, nav, navigation, needs, network, neutral, no, normal, not, notification, numeric, object,
286
+ on, online, opacity, opaque, opaquebackground, opaquebg, options, orange, orientation, origin,
287
+ outputs, over, overflow, overlay, override, p, padding, page, paging, paragraph, password, path,
288
+ pause, pb, persistent, physical, picture, pink, pl, placeholder, platform, playback, plugin, pointer,
289
+ portrait, position, pr, prevent, progress, provides, proximity, prune, pt, pull, purple, push, px,
290
+ py, r, ready, recording, red, remote, repeat, requested, requires, results, return, reverse, right,
291
+ role, rose, rotate, rounded, row, running, save, scale, scales, scaling, scroll, scrollable,
292
+ scrollbars, scrolling, scrolls, search, section, secure, selected, selection, sentences, separator,
293
+ severity, shadow, shift, show, shows, shuffle, size, sky, slate, smooth, snap, soft, sorted, sound,
294
+ source, split, start, state, status, stone, stopped, style, submit, subtitle, success, suppress,
295
+ suppresses, sustained, swipe, swipeable, system, tab, tabs, target, teal, text, theme, throw, thumb,
296
+ timeout, tint, title, tls, to, toggle, toolbar, top, torch, touch, trace, track, transition,
297
+ translucent, transparent, treat, type, unique, update, uppercase, upright, upside, use, user, valid,
298
+ validates, value, vertical, video, view, violet, visibility, visible, w, waits, wh, which, white,
299
+ will, window, wobble, wraps, x, y, yellow, z, zinc, zoom
235
300
  ```
301
+ <!-- GENERATED:prefixes END -->
236
302
 
237
303
  ---
238
304
 
@@ -276,11 +342,10 @@ These properties are NOT styled with classes in PurgeTSS - use as XML attributes
276
342
  | `onClick` | `onClick="functionName"` | Event handlers |
277
343
  | `onPostlayout` | `onPostlayout="handlePostlayout"` | Event handlers |
278
344
  | `hintText` | `hintText="Email"` | Placeholder text |
279
- | `passwordMask` | `passwordMask="true"` | Password masking |
280
345
  | `value` | `value="value"` | Component value |
281
346
  | `text` | `text="Label text"` | Label text |
282
347
  | `title` | `title="Button title"` | Button title |
283
- | `imageUrl` | `imageUrl="/path.png"` | Image source |
348
+ | `image` | `image="/images/photo.png"` | Image source |
284
349
  | `bindId` | `bindId="myData"` | ListView data binding |
285
350
 
286
- **Note:** For `autocapitalization`, `editable`, `enabled`, `visible`, `autocorrect` - PurgeTSS DOES have classes (see above), so you CAN use either the class or the attribute depending on your preference.
351
+ **Note:** For `autocapitalization`, `editable`, `enabled`, `visible`, `autocorrect`, `passwordMask` (`password-mask`) - PurgeTSS DOES have classes (see above), so you CAN use either the class or the attribute depending on your preference.
@@ -1,6 +1,6 @@
1
1
  # Classic Project Support
2
2
 
3
- Since PurgeTSS 7.15, the utility-class lifecycle remains Alloy-only while independent asset and CommonJS commands can run in Titanium Classic projects. Detect the project layout before choosing a command or output path.
3
+ The utility-class lifecycle remains Alloy-only while independent asset and CommonJS commands can run in Titanium Classic projects: `brand` since 7.6.0 (self-contained since 7.14.0), `semantic` since 7.6.2, and the remaining standalone commands since 7.15.0. Detect the project layout before choosing a command or output path.
4
4
 
5
5
  Official source: <https://purgetss.com/docs/commands#alloy-and-classic-compatibility>
6
6
 
@@ -64,7 +64,7 @@ Titanium resolves local CommonJS paths from `Resources/`. Omit both the `Resourc
64
64
  | `Resources/lib/materialsymbols.js` | `require('lib/materialsymbols')` |
65
65
  | `Resources/lib/framework7icons.js` | `require('lib/framework7icons')` |
66
66
 
67
- This follows Titanium's [CommonJS module path resolution](https://titaniumsdk.com/docs/build/modules).
67
+ This follows Titanium's [CommonJS module path resolution](https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_Guide/Best_Practices_and_Recommendations/CommonJS_Modules_in_Titanium.html#javascript-module-path-resolution).
68
68
 
69
69
  ## Deployment Targets
70
70
 
@@ -80,7 +80,7 @@ Do not assume that Classic means Android-only or that an Alloy project targets b
80
80
 
81
81
  ### `brand`
82
82
 
83
- In a Classic project without `purgetss/config.cjs`, `brand` creates the canonical config before resolving settings. If a positional PNG/SVG is supplied and no canonical `purgetss/brand/logo.{png,svg}` exists, the command moves the source into that convention after overwrite confirmation and reports the destination. It never replaces an existing canonical logo silently.
83
+ In a Classic project without `purgetss/config.cjs`, `brand` creates the canonical config before resolving settings. In any in-place run (Alloy or Classic), if a positional PNG/SVG is supplied and no canonical `purgetss/brand/logo.{png,svg}` exists, the command moves the source into that convention after overwrite confirmation and reports the destination. It never replaces an existing canonical logo silently.
84
84
 
85
85
  Classic Android receives the 11 `Resources/android/images/res-*` splash variants even when a fresh `ti create` template did not seed those folders. Titanium consumes those qualifier paths.
86
86