@design.estate/dees-catalog 9.5.0 → 9.6.2
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/dist_bundle/bundle.js +1319 -1452
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +5 -4
- package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.d.ts +1 -8
- package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.js +7 -2
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.d.ts +21 -2
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.d.ts +4 -0
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.js +218 -193
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +288 -403
- package/dist_ts_web/elements/00group-layout/dees-stepper/styles.d.ts +1 -0
- package/dist_ts_web/elements/00group-layout/dees-stepper/styles.js +41 -0
- package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.d.ts +1 -1
- package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +5 -4
- package/package.json +2 -2
- package/readme.md +52 -3
- package/scripts/check-bdtheme-ratchet.cjs +2 -2
- package/scripts/check-packed-consumer.mjs +45 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +3 -2
- package/ts_web/elements/00group-input/dees-input-base/dees-input-base.ts +6 -1
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.ts +142 -200
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +216 -400
- package/ts_web/elements/00group-layout/dees-stepper/styles.ts +41 -0
- package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +3 -3
- package/readme.hints.md +0 -1233
- package/readme.icons.md +0 -1849
- package/readme.info.md +0 -80
- package/readme.plan.md +0 -671
- package/readme.playbook.md +0 -820
- package/readme.theme-migration.md +0 -168
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# Theme Token Migration (bdTheme → --dees-* tokens)
|
|
2
|
-
|
|
3
|
-
Status: **WS1 in progress — vocabulary approved 2026-06-12.** Decisions: (1) the three text
|
|
4
|
-
tokens below were added to `00theme.ts`; (2) shadow tokens are theme-aware
|
|
5
|
-
(`themeDefaults.shadowsDark`); (3) consolidation mapping approved as listed; (4) the
|
|
6
|
-
post-consolidation unique tail uses `:host([gobright])` (goBright reflects as an attribute
|
|
7
|
-
since `@design.estate/dees-element` 2.3.0) instead of remaining on bdTheme.
|
|
8
|
-
|
|
9
|
-
Goal: zero `cssManager.bdTheme()` call sites in `ts_web` outside `ts_web/elements/00theme.ts`.
|
|
10
|
-
`00theme.ts` is the single sanctioned bridge — the `--dees-*` tokens are themselves implemented
|
|
11
|
-
via `bdTheme()` there, so the runtime theme-switch mechanism does not change. Components only
|
|
12
|
-
ever consume `var(--dees-*)`.
|
|
13
|
-
|
|
14
|
-
## Inventory (2026-06-12)
|
|
15
|
-
|
|
16
|
-
- 1,651 `bdTheme()` call sites across 129 files (demos included): 1,622 single-line literal
|
|
17
|
-
(clustered below), 22 multi-line literal (handled like any literal during sweeps), 7 with
|
|
18
|
-
dynamic arguments
|
|
19
|
-
- 546 distinct (light, dark) pairs after color normalization
|
|
20
|
-
- 91 pairs / 397 sites match an existing token exactly or within Δ≤6 per RGB channel (visual no-op)
|
|
21
|
-
- 7 pairs / 50 sites look like **flipped arguments** (light/dark swapped) — see "Suspected bugs"
|
|
22
|
-
- 432 pairs / 1,155 sites need consolidation (mostly zinc/gray/slate/ad-hoc palette generations
|
|
23
|
-
expressing the same semantics) — see mapping table
|
|
24
|
-
- 16 pairs / 20 sites are non-color values (shadows, borders shorthand, gradients, filters)
|
|
25
|
-
- Dynamic-argument calls live in only 3 components: dees-progressbar (3), dees-spinner (2),
|
|
26
|
-
dees-searchbar (2)
|
|
27
|
-
|
|
28
|
-
Analysis tooling: `tsx .nogit/debug/analyze-bdtheme.ts` regenerates
|
|
29
|
-
`.nogit/debug/bdtheme-analysis.json` (full cluster → file data) and the ratchet baseline counts.
|
|
30
|
-
|
|
31
|
-
## Approved vocabulary additions (in `00theme.ts` since 2026-06-12)
|
|
32
|
-
|
|
33
|
-
New color tokens in `IThemeColors` / `themeDefaultStyles` — values taken from the dominant
|
|
34
|
-
existing usage, so adopting them is a visual no-op at those sites:
|
|
35
|
-
|
|
36
|
-
| Token | Light | Dark | Replaces (sites) |
|
|
37
|
-
|---|---|---|---|
|
|
38
|
-
| `--dees-color-text-success` | `hsl(142.1 76.2% 36.3%)` | `hsl(142.1 70.6% 45.3%)` | green-600/500 pairs (~13) |
|
|
39
|
-
| `--dees-color-text-error` | `#dc2626` | `#f87171` | red-600/400 pairs (~10) |
|
|
40
|
-
| `--dees-color-text-warning` | `hsl(38 92% 45%)` | `hsl(38 92% 55%)` | amber pairs (~4) |
|
|
41
|
-
|
|
42
|
-
Shadow tokens become theme-aware (today they are static; found usage consistently wants
|
|
43
|
-
stronger shadows in dark mode). Light values unchanged:
|
|
44
|
-
|
|
45
|
-
| Token | Light (unchanged) | Dark (new) |
|
|
46
|
-
|---|---|---|
|
|
47
|
-
| `--dees-shadow-xs` | `0 1px 2px 0 rgb(0 0 0 / 0.05)` | `0 1px 2px 0 rgb(0 0 0 / 0.2)` |
|
|
48
|
-
| `--dees-shadow-sm` | `0 1px 3px rgba(0, 0, 0, 0.1)` | `0 1px 3px rgba(0, 0, 0, 0.3)` |
|
|
49
|
-
| `--dees-shadow-md` | `0 2px 8px rgba(0, 0, 0, 0.15)` | `0 2px 8px rgba(0, 0, 0, 0.35)` |
|
|
50
|
-
| `--dees-shadow-lg` | `0 4px 12px rgba(0, 0, 0, 0.15)` | `0 4px 12px rgba(0, 0, 0, 0.4)` |
|
|
51
|
-
|
|
52
|
-
Mechanism for the post-consolidation tail (genuinely component-unique theme pairs,
|
|
53
|
-
e.g. terminal/chart palettes): `goBright` reflects as the `gobright` attribute since
|
|
54
|
-
`@design.estate/dees-element` 2.3.0, so such sites use plain `:host([gobright]) { ... }` CSS
|
|
55
|
-
for component-local light/dark styling without bdTheme and without growing the global
|
|
56
|
-
vocabulary (rule R6).
|
|
57
|
-
|
|
58
|
-
## Migration rules (precedence order)
|
|
59
|
-
|
|
60
|
-
1. **R1 — exact/near token match** (Δ≤6/channel on both light and dark): replace with the token.
|
|
61
|
-
Visual no-op.
|
|
62
|
-
2. **R2 — semantic consolidation**: palette-generation duplicates (zinc/gray/slate/ad-hoc) map to
|
|
63
|
-
the canonical token for their *role* (see table). Small intentional shifts: blue-tinted grays
|
|
64
|
-
become neutral grays. Pick the token by role (text vs border vs surface), not by raw distance.
|
|
65
|
-
3. **R3 — alpha tints** of a semantic color: `color-mix(in srgb, var(--dees-color-X) N%, transparent)`
|
|
66
|
-
instead of a dedicated pair.
|
|
67
|
-
4. **R4 — flipped arguments**: confirm against rendered output, then fix to the token (these are
|
|
68
|
-
bugs — the light theme currently shows dark-theme values). Never "preserve" a flip by mapping
|
|
69
|
-
it to swapped tokens, except intentional inverted-contrast UI (tooltips already have
|
|
70
|
-
`--dees-color-tooltip-*`).
|
|
71
|
-
5. **R5 — non-color values**: shadows → `--dees-shadow-*`; spacing/radius/transition literals →
|
|
72
|
-
their scales when the value matches; composite values (gradients, checkerboards) → compose
|
|
73
|
-
from color tokens inside the gradient.
|
|
74
|
-
6. **R6 — genuinely unique pairs** (after R1–R5, expected rare): component-local
|
|
75
|
-
`:host([gobright])` CSS (dark value as default, bright override).
|
|
76
|
-
|
|
77
|
-
`00colors.ts` (legacy constants, 10 files) is retired during sweeps: `blue/blueActive` →
|
|
78
|
-
accent/link tokens per role (note: #0050b9 → #3b82f6 is a visible shift, check each site),
|
|
79
|
-
`text` → text tokens.
|
|
80
|
-
|
|
81
|
-
## Consolidation mapping (clusters ≥7 sites; tail follows the same role rules)
|
|
82
|
-
|
|
83
|
-
| Sites | Pair (light \| dark) | → Token | Shift |
|
|
84
|
-
|---|---|---|---|
|
|
85
|
-
| 45 | `#09090b` \| `#fafafa` | `--dees-color-text-primary` | none |
|
|
86
|
-
| 27 | `hsl(0 0% 89.8%)` \| `hsl(0 0% 14.9%)` | `--dees-color-border-default` | none |
|
|
87
|
-
| 25 | `#71717a` \| `#a1a1aa` | `--dees-color-text-muted` | dark dims slightly |
|
|
88
|
-
| 25 | `#e5e7eb` \| `#27272a` | `--dees-color-border-default` | none |
|
|
89
|
-
| 24 | `hsl(215.3 25% 8.8%)` \| `hsl(210 40% 98%)` | `--dees-color-text-primary` | blue-gray → neutral |
|
|
90
|
-
| 24 | `#e5e7eb` \| `#374151` | `--dees-color-border-default` | dark border darkens (wysiwyg blocks) |
|
|
91
|
-
| 23 | `#3b82f6` \| `#60a5fa` | `--dees-color-link` | none |
|
|
92
|
-
| 22 | `hsl(215.4 16.3% 56.9%)` \| `hsl(215 20.2% 55.1%)` | `--dees-color-text-muted` | blue-gray → neutral |
|
|
93
|
-
| 19 | `#3b82f6` \| `#3b82f6` | `--dees-color-accent-primary` | none |
|
|
94
|
-
| 19 | `#666` \| `#999` | `--dees-color-text-muted` | minor |
|
|
95
|
-
| 18 | `hsl(210 40% 96.1%)` \| `hsl(215 20.2% 16.8%)` | `--dees-color-badge-default-bg` | near none (secondary surface) |
|
|
96
|
-
| 18 | `hsl(215.4 16.3% 46.9%)` \| `hsl(215 20.2% 65.1%)` | `--dees-color-text-muted` | dark dims |
|
|
97
|
-
| 18 | `hsl(210 20% 98%)` \| `hsl(215 27.9% 16.9%)` | `--dees-color-badge-default-bg` | slate → neutral (datepicker family) |
|
|
98
|
-
| 16 | `#71717a` \| `#71717a` | `--dees-color-text-muted` | becomes theme-aware (improvement) |
|
|
99
|
-
| 16 | `#9ca3af` \| `#6b7280` | `--dees-color-text-muted` | light darkens (placeholders) |
|
|
100
|
-
| 15 | `hsl(222.2 47.4% 51.2%)` \| `hsl(217.2 91.2% 59.8%)` | `--dees-color-accent-primary` | light brightens |
|
|
101
|
-
| 15 | `hsl(0 0% 95.1%)` \| `hsl(0 0% 14.9%)` | `--dees-color-badge-default-bg` | near none |
|
|
102
|
-
| 14 | `hsl(220 8.9% 46.1%)` \| `hsl(215 20.2% 65.1%)` | `--dees-color-text-muted` | dark dims |
|
|
103
|
-
| 13 | `#18181b` \| `#fff` | `--dees-color-tooltip-bg` | near none |
|
|
104
|
-
| 13 | `#000000` \| `#ffffff` | per-site: usually `text-primary` | manual (R4 check: some intentional pure contrast) |
|
|
105
|
-
| 13 | `hsl(0 0% 45.1%)` \| `hsl(0 0% 63.9%)` | `--dees-color-text-muted` | dark dims slightly |
|
|
106
|
-
| 13 | `#374151` \| `#e5e7eb` | per-site: `text-secondary` or `text-primary` | manual (emphasized text, dark value sits between tokens) |
|
|
107
|
-
| 13 | `hsl(215 16% 45%)` \| `hsl(215 16% 75%)` | `--dees-color-text-secondary` | dark dims |
|
|
108
|
-
| 12 | `#6b7280` \| `#9ca3af` | `--dees-color-text-muted` | minor |
|
|
109
|
-
| 11 | `#71717a` \| `#888` | `--dees-color-text-muted` | minor |
|
|
110
|
-
| 11 | `#111827` \| `#f9fafb` | `--dees-color-text-primary` | near none |
|
|
111
|
-
| 10 | `#dc2626` \| `#f87171` | `--dees-color-text-error` (new) | none |
|
|
112
|
-
| 10 | `#ffffff` \| `#000000` | per-site (inverse surfaces) | manual |
|
|
113
|
-
| 10 | `#a1a1aa` \| `#666` | per-site (storage-browser family) | manual, flip-suspect |
|
|
114
|
-
| 10 | `#333` \| `#fff` | `--dees-color-text-primary` | light deepens |
|
|
115
|
-
| 10 | `hsl(214.3 31.8% 91.4%)` \| `hsl(217.2 32.6% 17.5%)` | `--dees-color-border-default` | slate → neutral |
|
|
116
|
-
| 10 | `hsl(0 0% 50%)` \| `hsl(0 0% 60%)` | `--dees-color-text-muted` | minor |
|
|
117
|
-
| 9 | `#e5e7eb` \| `#3f3f46` | `--dees-color-border-default` | dark darkens |
|
|
118
|
-
| 9 | `hsl(0 0% 88%)` \| `hsl(0 0% 20%)` | `--dees-color-border-default` | minor |
|
|
119
|
-
| 9 | `#d1d9e0` \| `#30363d` | `--dees-color-border-default` | github palette → neutral (markdownoutlet) |
|
|
120
|
-
| 8 | `hsl(142.1 76.2% 36.3%)` \| `hsl(142.1 70.6% 45.3%)` | `--dees-color-text-success` (new) | none |
|
|
121
|
-
| 8 | `#e5e7eb` \| `#333` | `--dees-color-border-default` | minor |
|
|
122
|
-
| 8 | `hsl(0 0% 20%)` \| `hsl(0 0% 90%)` | per-site: `text-secondary`/`text-primary` | manual |
|
|
123
|
-
| 8 | `hsl(224 71.4% 4.1%)` \| `hsl(210 20% 98%)` | `--dees-color-text-primary` | near none |
|
|
124
|
-
| 8 | `hsl(0 0% 95%)` \| `hsl(0 0% 9%)` | `--dees-color-code-block-bg` | near none |
|
|
125
|
-
| 7 | `#999` \| `#666` | `--dees-color-text-muted` | faint/disabled text, both shift |
|
|
126
|
-
| 7 | `hsl(222.2 47.4% 51.2% / 0.1)` \| `hsl(217.2 91.2% 59.8% / 0.1)` | `color-mix(accent-primary 10%)` (R3) | near none |
|
|
127
|
-
| 7 | `hsl(0 0% 100%)` \| `hsl(224 71.4% 4.1%)` | `--dees-color-bg-primary` | none |
|
|
128
|
-
| 7 | `hsl(0 72.2% 50.6%)` \| `hsl(0 62.8% 30.6%)` | `--dees-color-accent-error` | dark brightens (destructive buttons) — review |
|
|
129
|
-
| 7 | `hsl(215.3 25% 26.7%)` \| `hsl(217.9 10.6% 74.9%)` | `--dees-color-text-secondary` | dark dims |
|
|
130
|
-
| 7 | `#d1d5db` \| `#4b5563` | `--dees-color-border-strong` | dark darkens |
|
|
131
|
-
|
|
132
|
-
## Suspected bugs (flipped light/dark arguments — fix via R4 during sweeps)
|
|
133
|
-
|
|
134
|
-
| Sites | Pair (light \| dark) | Looks like | Files |
|
|
135
|
-
|---|---|---|---|
|
|
136
|
-
| 23 | `hsl(0 0% 9%)` \| `hsl(0 0% 95%)` | code-block-bg flipped | chart-log demo, table demo (terminal panels — verify: may be intentional always-dark panels; if so, use literal dark values, not a flip) |
|
|
137
|
-
| 12 | `hsl(0 0% 15%)` \| `hsl(0 0% 90%)` | border-default flipped | dataview-statusobject, input-checkbox |
|
|
138
|
-
| 9 | `hsl(0 0% 63.9%)` \| `hsl(0 0% 45.1%)` | text-secondary flipped | dropdown, statusobject |
|
|
139
|
-
| 6 | `#333` \| `#ccc` | border-strong flipped | profiledropdown, pagination |
|
|
140
|
-
| 3 | `#a1a1aa` \| `#404040` | badge-default-fg flipped | storage-browser |
|
|
141
|
-
| 3 | `hsl(0 0% 15%)` \| `hsl(0 0% 93.9%)` | badge-default-bg flipped | input-richtext, input-text |
|
|
142
|
-
| 3 | `hsl(142.1 70.6% 45.3%)` \| `hsl(142.1 76.2% 36.3%)` | text-success flipped | (locate during sweep) |
|
|
143
|
-
| 2 | `#262626` \| `#e5e5e5` | border-default flipped | appui-mainmenu, simple-appdash |
|
|
144
|
-
|
|
145
|
-
## Sweep order (WS1, after vocabulary approval)
|
|
146
|
-
|
|
147
|
-
1. Add approved tokens to `00theme.ts` (+ `IThemeColors`), release.
|
|
148
|
-
2. The 49 files currently using **both** systems (finish what's started; fastest surface reduction).
|
|
149
|
-
3. `00group-input` + form infrastructure (incl. datepicker slate re-skin)
|
|
150
|
-
4. `00group-dataview` (table styles.ts, storage-browser family incl. flip-suspects)
|
|
151
|
-
5. `00group-overlay`, `00group-layout`
|
|
152
|
-
6. `00group-appui`, `00group-simple`
|
|
153
|
-
7. `00group-chart`, `00group-media`, `00group-workspace`, remaining groups + demos
|
|
154
|
-
8. Dynamic-call components (progressbar, spinner, searchbar) — restructure their color props to
|
|
155
|
-
accept tokens/CSS values rather than light/dark pairs.
|
|
156
|
-
|
|
157
|
-
Per sweep: `pnpm build`, `pnpm test`, wcctools demo screenshots in both themes (before/after),
|
|
158
|
-
`node scripts/check-bdtheme-ratchet.cjs --update-baseline`, focused commit per group.
|
|
159
|
-
|
|
160
|
-
## Ratchet
|
|
161
|
-
|
|
162
|
-
`scripts/check-bdtheme-ratchet.cjs` (runs first in `pnpm test`):
|
|
163
|
-
|
|
164
|
-
- counts `bdTheme(` occurrences per file under `ts_web/`, excluding `ts_web/elements/00theme.ts`
|
|
165
|
-
- fails if any file exceeds its count in `scripts/bdtheme-baseline.json`, or if a file not in the
|
|
166
|
-
baseline uses bdTheme at all
|
|
167
|
-
- `--update-baseline` rewrites the baseline after a sweep (counts may only shrink; the script
|
|
168
|
-
refuses to raise them)
|