@tenphi/tasty 0.0.0-snapshot.c8bdaeb → 0.0.0-snapshot.cae4fee
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 +314 -159
- package/dist/async-storage-B7_o6FKt.js +44 -0
- package/dist/async-storage-B7_o6FKt.js.map +1 -0
- package/dist/collector-C-keQH9m.js +243 -0
- package/dist/collector-C-keQH9m.js.map +1 -0
- package/dist/collector-osfWTeRd.d.ts +108 -0
- package/dist/config-BBiyxMCe.js +10559 -0
- package/dist/config-BBiyxMCe.js.map +1 -0
- package/dist/config-BoZDUHW5.d.ts +945 -0
- package/dist/context-CkSg-kDT.js +24 -0
- package/dist/context-CkSg-kDT.js.map +1 -0
- package/dist/core/index.d.ts +5 -33
- package/dist/core/index.js +6 -26
- package/dist/core-BO4319td.js +1598 -0
- package/dist/core-BO4319td.js.map +1 -0
- package/dist/css-writer-BWvwQzz0.js +351 -0
- package/dist/css-writer-BWvwQzz0.js.map +1 -0
- package/dist/format-global-rules-Dbc_1tc3.js +22 -0
- package/dist/format-global-rules-Dbc_1tc3.js.map +1 -0
- package/dist/format-rules-BSjeH4Z7.js +143 -0
- package/dist/format-rules-BSjeH4Z7.js.map +1 -0
- package/dist/hydrate-CcvrP4qJ.js +45 -0
- package/dist/hydrate-CcvrP4qJ.js.map +1 -0
- package/dist/index-B_k47mc_.d.ts +1655 -0
- package/dist/index-tcHuMPFt.d.ts +1286 -0
- package/dist/index.d.ts +5 -48
- package/dist/index.js +731 -32
- package/dist/index.js.map +1 -0
- package/dist/keyframes-BUQhdOSJ.js +588 -0
- package/dist/keyframes-BUQhdOSJ.js.map +1 -0
- package/dist/{utils/merge-styles.d.ts → merge-styles-BMWcH6MF.d.ts} +3 -3
- package/dist/{utils/merge-styles.js → merge-styles-Cd2vBl9b.js} +4 -6
- package/dist/merge-styles-Cd2vBl9b.js.map +1 -0
- package/dist/{utils/resolve-recipes.js → resolve-recipes-C1nrvnYh.js} +5 -8
- package/dist/resolve-recipes-C1nrvnYh.js.map +1 -0
- package/dist/ssr/astro-client.d.ts +1 -0
- package/dist/ssr/astro-client.js +19 -0
- package/dist/ssr/astro-client.js.map +1 -0
- package/dist/ssr/astro-middleware.d.ts +15 -0
- package/dist/ssr/astro-middleware.js +19 -0
- package/dist/ssr/astro-middleware.js.map +1 -0
- package/dist/ssr/astro.d.ts +97 -0
- package/dist/ssr/astro.js +149 -0
- package/dist/ssr/astro.js.map +1 -0
- package/dist/ssr/index.d.ts +44 -0
- package/dist/ssr/index.js +10 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/next.d.ts +46 -0
- package/dist/ssr/next.js +75 -0
- package/dist/ssr/next.js.map +1 -0
- package/dist/static/index.d.ts +91 -5
- package/dist/static/index.js +49 -4
- package/dist/static/index.js.map +1 -0
- package/dist/static/inject.d.ts +5 -0
- package/dist/static/inject.js +17 -0
- package/dist/static/inject.js.map +1 -0
- package/dist/zero/babel.d.ts +57 -84
- package/dist/zero/babel.js +232 -40
- package/dist/zero/babel.js.map +1 -1
- package/dist/zero/index.d.ts +67 -3
- package/dist/zero/index.js +2 -4
- package/dist/zero/next.d.ts +56 -30
- package/dist/zero/next.js +105 -40
- package/dist/zero/next.js.map +1 -1
- package/docs/README.md +31 -0
- package/docs/adoption.md +298 -0
- package/docs/comparison.md +419 -0
- package/docs/configuration.md +438 -0
- package/docs/debug.md +320 -0
- package/docs/design-system.md +436 -0
- package/docs/dsl.md +690 -0
- package/docs/getting-started.md +217 -0
- package/docs/injector.md +544 -0
- package/docs/methodology.md +642 -0
- package/docs/pipeline.md +699 -0
- package/docs/react-api.md +581 -0
- package/docs/ssr.md +444 -0
- package/docs/styles.md +598 -0
- package/docs/tasty-static.md +547 -0
- package/package.json +70 -37
- package/tasty.config.ts +1 -0
- package/dist/_virtual/_rolldown/runtime.js +0 -8
- package/dist/chunks/cacheKey.js +0 -70
- package/dist/chunks/cacheKey.js.map +0 -1
- package/dist/chunks/definitions.d.ts +0 -37
- package/dist/chunks/definitions.js +0 -260
- package/dist/chunks/definitions.js.map +0 -1
- package/dist/chunks/renderChunk.js +0 -61
- package/dist/chunks/renderChunk.js.map +0 -1
- package/dist/config.d.ts +0 -280
- package/dist/config.js +0 -403
- package/dist/config.js.map +0 -1
- package/dist/debug.d.ts +0 -204
- package/dist/debug.js +0 -733
- package/dist/debug.js.map +0 -1
- package/dist/hooks/useGlobalStyles.d.ts +0 -27
- package/dist/hooks/useGlobalStyles.js +0 -56
- package/dist/hooks/useGlobalStyles.js.map +0 -1
- package/dist/hooks/useKeyframes.d.ts +0 -56
- package/dist/hooks/useKeyframes.js +0 -54
- package/dist/hooks/useKeyframes.js.map +0 -1
- package/dist/hooks/useProperty.d.ts +0 -79
- package/dist/hooks/useProperty.js +0 -91
- package/dist/hooks/useProperty.js.map +0 -1
- package/dist/hooks/useRawCSS.d.ts +0 -53
- package/dist/hooks/useRawCSS.js +0 -28
- package/dist/hooks/useRawCSS.js.map +0 -1
- package/dist/hooks/useStyles.d.ts +0 -40
- package/dist/hooks/useStyles.js +0 -169
- package/dist/hooks/useStyles.js.map +0 -1
- package/dist/injector/index.d.ts +0 -157
- package/dist/injector/index.js +0 -154
- package/dist/injector/index.js.map +0 -1
- package/dist/injector/injector.d.ts +0 -139
- package/dist/injector/injector.js +0 -404
- package/dist/injector/injector.js.map +0 -1
- package/dist/injector/sheet-manager.d.ts +0 -127
- package/dist/injector/sheet-manager.js +0 -714
- package/dist/injector/sheet-manager.js.map +0 -1
- package/dist/injector/types.d.ts +0 -135
- package/dist/keyframes/index.js +0 -206
- package/dist/keyframes/index.js.map +0 -1
- package/dist/parser/classify.js +0 -319
- package/dist/parser/classify.js.map +0 -1
- package/dist/parser/const.js +0 -33
- package/dist/parser/const.js.map +0 -1
- package/dist/parser/lru.js +0 -109
- package/dist/parser/lru.js.map +0 -1
- package/dist/parser/parser.d.ts +0 -25
- package/dist/parser/parser.js +0 -116
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/tokenizer.js +0 -69
- package/dist/parser/tokenizer.js.map +0 -1
- package/dist/parser/types.d.ts +0 -51
- package/dist/parser/types.js +0 -46
- package/dist/parser/types.js.map +0 -1
- package/dist/pipeline/conditions.d.ts +0 -134
- package/dist/pipeline/conditions.js +0 -406
- package/dist/pipeline/conditions.js.map +0 -1
- package/dist/pipeline/exclusive.js +0 -231
- package/dist/pipeline/exclusive.js.map +0 -1
- package/dist/pipeline/index.d.ts +0 -53
- package/dist/pipeline/index.js +0 -660
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/materialize.js +0 -844
- package/dist/pipeline/materialize.js.map +0 -1
- package/dist/pipeline/parseStateKey.d.ts +0 -15
- package/dist/pipeline/parseStateKey.js +0 -438
- package/dist/pipeline/parseStateKey.js.map +0 -1
- package/dist/pipeline/simplify.js +0 -516
- package/dist/pipeline/simplify.js.map +0 -1
- package/dist/pipeline/warnings.js +0 -18
- package/dist/pipeline/warnings.js.map +0 -1
- package/dist/plugins/okhsl-plugin.d.ts +0 -35
- package/dist/plugins/okhsl-plugin.js +0 -371
- package/dist/plugins/okhsl-plugin.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -69
- package/dist/properties/index.js +0 -158
- package/dist/properties/index.js.map +0 -1
- package/dist/states/index.d.ts +0 -49
- package/dist/states/index.js +0 -416
- package/dist/states/index.js.map +0 -1
- package/dist/static/tastyStatic.d.ts +0 -46
- package/dist/static/tastyStatic.js +0 -31
- package/dist/static/tastyStatic.js.map +0 -1
- package/dist/static/types.d.ts +0 -49
- package/dist/static/types.js +0 -24
- package/dist/static/types.js.map +0 -1
- package/dist/styles/align.d.ts +0 -15
- package/dist/styles/align.js +0 -14
- package/dist/styles/align.js.map +0 -1
- package/dist/styles/border.d.ts +0 -25
- package/dist/styles/border.js +0 -114
- package/dist/styles/border.js.map +0 -1
- package/dist/styles/color.d.ts +0 -14
- package/dist/styles/color.js +0 -23
- package/dist/styles/color.js.map +0 -1
- package/dist/styles/createStyle.js +0 -77
- package/dist/styles/createStyle.js.map +0 -1
- package/dist/styles/dimension.js +0 -97
- package/dist/styles/dimension.js.map +0 -1
- package/dist/styles/display.d.ts +0 -37
- package/dist/styles/display.js +0 -67
- package/dist/styles/display.js.map +0 -1
- package/dist/styles/fade.d.ts +0 -15
- package/dist/styles/fade.js +0 -58
- package/dist/styles/fade.js.map +0 -1
- package/dist/styles/fill.d.ts +0 -42
- package/dist/styles/fill.js +0 -51
- package/dist/styles/fill.js.map +0 -1
- package/dist/styles/flow.d.ts +0 -16
- package/dist/styles/flow.js +0 -12
- package/dist/styles/flow.js.map +0 -1
- package/dist/styles/gap.d.ts +0 -31
- package/dist/styles/gap.js +0 -37
- package/dist/styles/gap.js.map +0 -1
- package/dist/styles/height.d.ts +0 -17
- package/dist/styles/height.js +0 -20
- package/dist/styles/height.js.map +0 -1
- package/dist/styles/index.d.ts +0 -2
- package/dist/styles/index.js +0 -9
- package/dist/styles/index.js.map +0 -1
- package/dist/styles/inset.d.ts +0 -52
- package/dist/styles/inset.js +0 -150
- package/dist/styles/inset.js.map +0 -1
- package/dist/styles/justify.d.ts +0 -15
- package/dist/styles/justify.js +0 -14
- package/dist/styles/justify.js.map +0 -1
- package/dist/styles/list.d.ts +0 -16
- package/dist/styles/list.js +0 -98
- package/dist/styles/list.js.map +0 -1
- package/dist/styles/margin.d.ts +0 -24
- package/dist/styles/margin.js +0 -104
- package/dist/styles/margin.js.map +0 -1
- package/dist/styles/outline.d.ts +0 -29
- package/dist/styles/outline.js +0 -65
- package/dist/styles/outline.js.map +0 -1
- package/dist/styles/padding.d.ts +0 -24
- package/dist/styles/padding.js +0 -104
- package/dist/styles/padding.js.map +0 -1
- package/dist/styles/predefined.d.ts +0 -73
- package/dist/styles/predefined.js +0 -241
- package/dist/styles/predefined.js.map +0 -1
- package/dist/styles/preset.d.ts +0 -47
- package/dist/styles/preset.js +0 -126
- package/dist/styles/preset.js.map +0 -1
- package/dist/styles/radius.d.ts +0 -14
- package/dist/styles/radius.js +0 -51
- package/dist/styles/radius.js.map +0 -1
- package/dist/styles/scrollbar.d.ts +0 -21
- package/dist/styles/scrollbar.js +0 -112
- package/dist/styles/scrollbar.js.map +0 -1
- package/dist/styles/shadow.d.ts +0 -14
- package/dist/styles/shadow.js +0 -24
- package/dist/styles/shadow.js.map +0 -1
- package/dist/styles/styledScrollbar.d.ts +0 -47
- package/dist/styles/styledScrollbar.js +0 -38
- package/dist/styles/styledScrollbar.js.map +0 -1
- package/dist/styles/transition.d.ts +0 -14
- package/dist/styles/transition.js +0 -158
- package/dist/styles/transition.js.map +0 -1
- package/dist/styles/types.d.ts +0 -498
- package/dist/styles/width.d.ts +0 -17
- package/dist/styles/width.js +0 -20
- package/dist/styles/width.js.map +0 -1
- package/dist/tasty.d.ts +0 -982
- package/dist/tasty.js +0 -206
- package/dist/tasty.js.map +0 -1
- package/dist/tokens/typography.d.ts +0 -19
- package/dist/tokens/typography.js +0 -237
- package/dist/tokens/typography.js.map +0 -1
- package/dist/types.d.ts +0 -184
- package/dist/utils/cache-wrapper.js +0 -26
- package/dist/utils/cache-wrapper.js.map +0 -1
- package/dist/utils/case-converter.js +0 -8
- package/dist/utils/case-converter.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -5
- package/dist/utils/colors.js +0 -9
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/css-types.d.ts +0 -7
- package/dist/utils/dotize.d.ts +0 -26
- package/dist/utils/dotize.js +0 -122
- package/dist/utils/dotize.js.map +0 -1
- package/dist/utils/filter-base-props.d.ts +0 -15
- package/dist/utils/filter-base-props.js +0 -45
- package/dist/utils/filter-base-props.js.map +0 -1
- package/dist/utils/get-display-name.d.ts +0 -7
- package/dist/utils/get-display-name.js +0 -10
- package/dist/utils/get-display-name.js.map +0 -1
- package/dist/utils/hsl-to-rgb.js +0 -38
- package/dist/utils/hsl-to-rgb.js.map +0 -1
- package/dist/utils/is-dev-env.js +0 -19
- package/dist/utils/is-dev-env.js.map +0 -1
- package/dist/utils/is-valid-element-type.js +0 -15
- package/dist/utils/is-valid-element-type.js.map +0 -1
- package/dist/utils/merge-styles.js.map +0 -1
- package/dist/utils/mod-attrs.d.ts +0 -8
- package/dist/utils/mod-attrs.js +0 -21
- package/dist/utils/mod-attrs.js.map +0 -1
- package/dist/utils/okhsl-to-rgb.js +0 -296
- package/dist/utils/okhsl-to-rgb.js.map +0 -1
- package/dist/utils/process-tokens.d.ts +0 -31
- package/dist/utils/process-tokens.js +0 -171
- package/dist/utils/process-tokens.js.map +0 -1
- package/dist/utils/resolve-recipes.d.ts +0 -17
- package/dist/utils/resolve-recipes.js.map +0 -1
- package/dist/utils/string.js +0 -8
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/styles.d.ts +0 -178
- package/dist/utils/styles.js +0 -590
- package/dist/utils/styles.js.map +0 -1
- package/dist/utils/typography.d.ts +0 -36
- package/dist/utils/typography.js +0 -53
- package/dist/utils/typography.js.map +0 -1
- package/dist/utils/warnings.d.ts +0 -16
- package/dist/utils/warnings.js +0 -16
- package/dist/utils/warnings.js.map +0 -1
- package/dist/zero/css-writer.d.ts +0 -45
- package/dist/zero/css-writer.js +0 -74
- package/dist/zero/css-writer.js.map +0 -1
- package/dist/zero/extractor.d.ts +0 -24
- package/dist/zero/extractor.js +0 -150
- package/dist/zero/extractor.js.map +0 -1
package/docs/debug.md
ADDED
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Tasty Debug Utilities
|
|
2
|
+
|
|
3
|
+
Runtime CSS inspection and diagnostics for the Tasty styling system. Inspect injected styles, measure cache performance, analyze style chunks, and troubleshoot CSS issues — all from the browser console.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
`tastyDebug` is a diagnostic object that exposes Tasty's runtime CSS state. It is designed for development use but can be manually installed in production for debugging.
|
|
10
|
+
|
|
11
|
+
In development mode (`isDevEnv()` returns `true`), `tastyDebug` is automatically installed on `window.tastyDebug`. In production, install it manually when needed.
|
|
12
|
+
|
|
13
|
+
All methods **log to the console by default**. Pass `{ raw: true }` to suppress logging and only return data.
|
|
14
|
+
|
|
15
|
+
> **Note (2.0.0+):** Class names use a content-addressed base36 hash format (e.g. `t3a5f`) instead of the previous sequential `t{number}` format. Cross-environment hydration reads the rendered class list from `window.__TASTY__` (the legacy `window.__TASTY_SSR_CACHE__` global was removed in 2.0.0).
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// Auto-installed in dev mode. Otherwise:
|
|
23
|
+
import { tastyDebug } from '@tenphi/tasty';
|
|
24
|
+
tastyDebug.install();
|
|
25
|
+
|
|
26
|
+
// Print a quick-start guide
|
|
27
|
+
tastyDebug.help();
|
|
28
|
+
|
|
29
|
+
// Get a comprehensive overview (logged automatically)
|
|
30
|
+
tastyDebug.summary();
|
|
31
|
+
|
|
32
|
+
// See all active CSS
|
|
33
|
+
tastyDebug.css('active');
|
|
34
|
+
|
|
35
|
+
// Inspect a specific element
|
|
36
|
+
tastyDebug.inspect('.my-button');
|
|
37
|
+
|
|
38
|
+
// Silent mode — return data only, no console output
|
|
39
|
+
const data = tastyDebug.summary({ raw: true });
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Options
|
|
45
|
+
|
|
46
|
+
All methods accept a shared options object:
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
interface DebugOptions {
|
|
50
|
+
root?: Document | ShadowRoot; // Target root (default: document)
|
|
51
|
+
raw?: boolean; // Suppress console logging (default: false)
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
When `raw` is `false` (the default), results are logged to the console **and** returned. When `raw` is `true`, results are returned silently.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## API Reference
|
|
60
|
+
|
|
61
|
+
### `css(target, opts?): string`
|
|
62
|
+
|
|
63
|
+
Retrieves CSS text for a given target. Logs the result with rule count and size.
|
|
64
|
+
|
|
65
|
+
**Targets:**
|
|
66
|
+
|
|
67
|
+
| Target | Description |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `'all'` | All tasty CSS (component + global + raw) |
|
|
70
|
+
| `'active'` | CSS for classes currently in the DOM |
|
|
71
|
+
| `'unused'` | CSS with refCount = 0 (cached but not used) |
|
|
72
|
+
| `'global'` | Only global CSS (from `injectGlobal`) |
|
|
73
|
+
| `'page'` | All CSS on the page (including non-tasty) |
|
|
74
|
+
| `'t3a5f'` | CSS for a specific tasty class (class names are `t` + base36 hash) |
|
|
75
|
+
| `['t3a5f', 't9k2']` | CSS for multiple tasty classes |
|
|
76
|
+
| `'.my-button'` | CSS affecting a DOM element (by selector) |
|
|
77
|
+
| `element` | CSS affecting a DOM element (by reference) |
|
|
78
|
+
|
|
79
|
+
**Extra options:**
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
interface CssOptions extends DebugOptions {
|
|
83
|
+
prettify?: boolean; // Format output (default: true)
|
|
84
|
+
source?: boolean; // Read original CSS instead of live CSSOM (default: false, dev-mode only)
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// Active CSS with stats
|
|
90
|
+
tastyDebug.css('active');
|
|
91
|
+
|
|
92
|
+
// Specific class, silent
|
|
93
|
+
const css = tastyDebug.css('t3a5f', { raw: true });
|
|
94
|
+
|
|
95
|
+
// Compare original vs browser-parsed CSS (dev mode only)
|
|
96
|
+
tastyDebug.css('t3a5f'); // live CSSOM
|
|
97
|
+
tastyDebug.css('t3a5f', { source: true }); // original output
|
|
98
|
+
|
|
99
|
+
// Shadow DOM
|
|
100
|
+
tastyDebug.css('all', { root: shadowRoot });
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The `source` option reads from `RuleInfo.cssText`, which is only populated when `devMode` is active (development environment or `localStorage.TASTY_DEBUG = 'true'`). In production without debug mode, it falls back to the live CSSOM with a warning.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### `inspect(target, opts?): InspectResult`
|
|
108
|
+
|
|
109
|
+
Inspects a DOM element and returns detailed information about its tasty styles, including chunk assignments.
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
interface InspectResult {
|
|
113
|
+
element?: Element | null;
|
|
114
|
+
classes: string[]; // Tasty classes on the element
|
|
115
|
+
chunks: ChunkInfo[]; // Chunk assignment per class
|
|
116
|
+
css: string; // Prettified CSS
|
|
117
|
+
size: number; // CSS size in characters
|
|
118
|
+
rules: number; // Number of CSS rule blocks
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
interface ChunkInfo {
|
|
122
|
+
className: string;
|
|
123
|
+
chunkName: string | null; // e.g., 'appearance', 'font', 'dimension'
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
tastyDebug.inspect('.my-card');
|
|
129
|
+
// Logs: inspect div — 3 classes, 5 rules, 1.2KB
|
|
130
|
+
// Chunks: t3a5f→appearance, t9k2→font, tb71→dimension
|
|
131
|
+
|
|
132
|
+
// Silent
|
|
133
|
+
const result = tastyDebug.inspect('.my-card', { raw: true });
|
|
134
|
+
console.log(result.classes); // ['t3a5f', 't9k2', 'tb71']
|
|
135
|
+
console.log(result.rules); // 5
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### `summary(opts?): Summary`
|
|
141
|
+
|
|
142
|
+
One-shot overview of the entire Tasty CSS state. Logs a compact report.
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
interface Summary {
|
|
146
|
+
activeClasses: string[];
|
|
147
|
+
unusedClasses: string[];
|
|
148
|
+
totalStyledClasses: string[];
|
|
149
|
+
|
|
150
|
+
activeCSSSize: number;
|
|
151
|
+
unusedCSSSize: number;
|
|
152
|
+
globalCSSSize: number;
|
|
153
|
+
rawCSSSize: number;
|
|
154
|
+
keyframesCSSSize: number;
|
|
155
|
+
propertyCSSSize: number;
|
|
156
|
+
totalCSSSize: number;
|
|
157
|
+
|
|
158
|
+
activeRuleCount: number;
|
|
159
|
+
unusedRuleCount: number;
|
|
160
|
+
globalRuleCount: number;
|
|
161
|
+
rawRuleCount: number;
|
|
162
|
+
keyframesRuleCount: number;
|
|
163
|
+
propertyRuleCount: number;
|
|
164
|
+
totalRuleCount: number;
|
|
165
|
+
|
|
166
|
+
metrics: CacheMetrics | null;
|
|
167
|
+
definedProperties: string[];
|
|
168
|
+
definedKeyframes: { name: string; refCount: number }[];
|
|
169
|
+
chunkBreakdown: ChunkBreakdown;
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
// Logged automatically
|
|
175
|
+
tastyDebug.summary();
|
|
176
|
+
// Output:
|
|
177
|
+
// Active: 42 classes, 186 rules, 12.4KB
|
|
178
|
+
// Unused: 3 classes, 8 rules, 0.5KB
|
|
179
|
+
// Global: 12 rules, 1.1KB
|
|
180
|
+
// Total: 45 classes, 206 rules, 14.0KB
|
|
181
|
+
// Cache: 94.2% hit rate (312 lookups)
|
|
182
|
+
|
|
183
|
+
// Silent
|
|
184
|
+
const s = tastyDebug.summary({ raw: true });
|
|
185
|
+
console.log(s.totalRuleCount); // 206
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### `chunks(opts?): ChunkBreakdown`
|
|
191
|
+
|
|
192
|
+
Breakdown of styles by chunk type.
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
interface ChunkBreakdown {
|
|
196
|
+
byChunk: Record<string, {
|
|
197
|
+
classes: string[];
|
|
198
|
+
cssSize: number;
|
|
199
|
+
ruleCount: number;
|
|
200
|
+
}>;
|
|
201
|
+
totalChunkTypes: number;
|
|
202
|
+
totalClasses: number;
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
tastyDebug.chunks();
|
|
208
|
+
// Output:
|
|
209
|
+
// appearance: 24 cls, 48 rules, 3.2KB
|
|
210
|
+
// font: 18 cls, 18 rules, 1.1KB
|
|
211
|
+
// dimension: 31 cls, 45 rules, 2.4KB
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Chunk types: `combined`, `appearance`, `font`, `dimension`, `display`, `layout`, `position`, `misc`, `subcomponents`.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
### `cache(opts?): CacheStatus`
|
|
219
|
+
|
|
220
|
+
Cache state and performance metrics.
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
interface CacheStatus {
|
|
224
|
+
classes: {
|
|
225
|
+
active: string[];
|
|
226
|
+
unused: string[];
|
|
227
|
+
all: string[];
|
|
228
|
+
};
|
|
229
|
+
metrics: CacheMetrics | null;
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
tastyDebug.cache();
|
|
235
|
+
// Output:
|
|
236
|
+
// Active: 42, Unused: 3
|
|
237
|
+
// Hits: 294, Misses: 18, Rate: 94.2%
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### `cleanup(opts?): void`
|
|
243
|
+
|
|
244
|
+
Forces immediate cleanup of all unused styles (those with `refCount = 0`).
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
tastyDebug.cleanup();
|
|
248
|
+
tastyDebug.cleanup({ root: shadowRoot });
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### `help(): void`
|
|
254
|
+
|
|
255
|
+
Prints a quick-start guide to the console.
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
tastyDebug.help();
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### `install(): void`
|
|
264
|
+
|
|
265
|
+
Attaches `tastyDebug` to `window.tastyDebug`. Called automatically in development mode.
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
import { tastyDebug } from '@tenphi/tasty';
|
|
269
|
+
tastyDebug.install();
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Shadow DOM Support
|
|
275
|
+
|
|
276
|
+
All methods accept a `root` option to target a Shadow DOM:
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
const shadowRoot = host.shadowRoot;
|
|
280
|
+
tastyDebug.css('all', { root: shadowRoot });
|
|
281
|
+
tastyDebug.inspect('.shadow-component', { root: shadowRoot });
|
|
282
|
+
tastyDebug.summary({ root: shadowRoot });
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Common Workflows
|
|
288
|
+
|
|
289
|
+
### Debugging a component's styles
|
|
290
|
+
|
|
291
|
+
```typescript
|
|
292
|
+
// 1. Inspect the element
|
|
293
|
+
tastyDebug.inspect('.my-button');
|
|
294
|
+
|
|
295
|
+
// 2. See CSS for a specific class
|
|
296
|
+
tastyDebug.css('t3a5f');
|
|
297
|
+
|
|
298
|
+
// 3. Compare original vs browser-parsed (dev mode)
|
|
299
|
+
tastyDebug.css('t3a5f', { source: true });
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Checking cache efficiency
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
const { metrics } = tastyDebug.cache({ raw: true });
|
|
306
|
+
if (metrics) {
|
|
307
|
+
const total = metrics.hits + metrics.misses;
|
|
308
|
+
const rate = total > 0 ? ((metrics.hits / total) * 100).toFixed(1) : 0;
|
|
309
|
+
console.log(`Cache hit rate: ${rate}%`);
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Monitoring CSS growth
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
const s = tastyDebug.summary({ raw: true });
|
|
317
|
+
console.log(`Total: ${s.totalRuleCount} rules, ${(s.totalCSSSize / 1024).toFixed(1)}KB`);
|
|
318
|
+
console.log(`Active: ${s.activeRuleCount} rules`);
|
|
319
|
+
console.log(`Unused: ${s.unusedRuleCount} rules`);
|
|
320
|
+
```
|