@vernikr/size-report 1.3.0 → 1.3.1
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/CHANGELOG.md +35 -0
- package/README.md +20 -9
- package/package.json +2 -2
- package/src/page/app.css +30 -0
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,41 @@
|
|
|
18
18
|
где за основу взяты `fixtures/synthetic/config.json`, метрики — `raw`, `min`, `tok`, а
|
|
19
19
|
способ минификации — `strip` или `esbuild`.
|
|
20
20
|
|
|
21
|
+
## 1.3.1 — 2026-09-15
|
|
22
|
+
|
|
23
|
+
Правка раскладки страницы: на широком экране панель выбора встаёт слева от таблицы.
|
|
24
|
+
|
|
25
|
+
- **От 900 px панель — колонка слева от таблицы.** Метрики, дерево файлов и легенда
|
|
26
|
+
видны одновременно с числами: прокрутка нижних строк больше не уводит управление за
|
|
27
|
+
верх экрана, а таблица получает всё оставшееся по горизонтали (1060 px при окне
|
|
28
|
+
1440 против 1372 у прежней раскладки в одну колонку). Узкое окно раскладку снимает:
|
|
29
|
+
там столбцы снова идут друг под другом, как было.
|
|
30
|
+
- Раскладка — сетка на `body` (`src/page/app.css`), а не обёртка в разметке: страница
|
|
31
|
+
собирается вклейкой глав, и форма страницы осталась в одном месте. Порог тот же,
|
|
32
|
+
что у адаптаций: между «широко» и «узко» нет промежутка без правил.
|
|
33
|
+
- Ни поведение, ни артефакт, ни данные не тронуты — правка только в оформлении
|
|
34
|
+
страницы (`--page`); статический артефакт (`--write`) этот выпуск не касается.
|
|
35
|
+
|
|
36
|
+
### Что изменится в числах
|
|
37
|
+
|
|
38
|
+
**Ничего.** Этот выпуск не трогает ни измерение, ни форму отчёта: изменилась
|
|
39
|
+
раскладка страницы, а числа считает тот же движок теми же датчиками. Таблица ниже та
|
|
40
|
+
же, что у 1.3.0, до последней клетки.
|
|
41
|
+
|
|
42
|
+
| Файл | raw | min со strip | min с esbuild | tok |
|
|
43
|
+
|---|---|---|---|---|
|
|
44
|
+
| code.js | 735 | 276 | 185 | 168 |
|
|
45
|
+
| modern.js | 246 | 51 | 45 | 44 |
|
|
46
|
+
| config.mjs | 172 | 45 | 40 | 40 |
|
|
47
|
+
| заметки.md | 306 | 303 | 303 | 53 |
|
|
48
|
+
| crlf.txt | 63 | 60 | 60 | 10 |
|
|
49
|
+
| package.json | 87 | 69 | 69 | 34 |
|
|
50
|
+
| style.css | 156 | 55 | 43 | 38 |
|
|
51
|
+
| table.toml | 300 | 299 | 299 | 52 |
|
|
52
|
+
| empty.js | 0 | 0 | 0 | 0 |
|
|
53
|
+
| WORKLOG.md | 446 | 439 | 439 | 101 |
|
|
54
|
+
| **ИТОГО** | **2511** | **1597** | **1483** | **540** |
|
|
55
|
+
|
|
21
56
|
## 1.3.0 — 2026-09-15
|
|
22
57
|
|
|
23
58
|
Выпуск выведенных настроек: чтобы получить отчёт, проект больше не обязан себя
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
## Статус
|
|
12
12
|
|
|
13
|
-
**Выпуск 1.3.
|
|
13
|
+
**Выпуск 1.3.1 (2026-09-15).** Инструмент живёт отдельным пакетом: имя в
|
|
14
14
|
реестре — `@vernikr/size-report` (публикуется тегом из CI, без секрета). Настроек
|
|
15
15
|
проект может не заводить вовсе: без файла инструмент выводит их из самого проекта и
|
|
16
16
|
говорит об этом строкой, а `--init` закрепляет выведенное файлом (чем этот шаг
|
|
@@ -316,9 +316,20 @@ deльт задан один раз и по артефакту: рост зел
|
|
|
316
316
|
папки три состояния — все её файлы включены, часть, ни одного, — и переключатель
|
|
317
317
|
папки ведёт за собой всё поддерево; рядом стоит число файлов. Своего состояния у
|
|
318
318
|
папки и у быстрой кнопки категории нет: обе переставляют галочки файлов, поэтому
|
|
319
|
-
дерево, кнопки и таблица не могут разойтись. Список файлов длиной больше
|
|
320
|
-
|
|
321
|
-
(
|
|
319
|
+
дерево, кнопки и таблица не могут разойтись. Список файлов длиной больше экрана
|
|
320
|
+
прокручивается внутри панели, а не выталкивает таблицу: на живой истории
|
|
321
|
+
(87 строк × 12 колонок) дерево занимает 558 px из 883 у панели.
|
|
322
|
+
|
|
323
|
+
**На широком экране панель стоит слева от таблицы** (от 900 px, `src/page/app.css`).
|
|
324
|
+
Это не украшение: на десктопе бокового места много, а вертикального мало —
|
|
325
|
+
переключатели, дерево и числа видны одновременно, и прокрутка нижних строк не
|
|
326
|
+
уводит управление за верх экрана. Раскладка сделана сеткой на `body`: обёртки в
|
|
327
|
+
разметке нет, потому что страница собирается вклейкой глав и форма страницы должна
|
|
328
|
+
жить в одном месте. Порог один с адаптациями — промежутка без правил между «широко»
|
|
329
|
+
и «узко» нет. Измерено в настоящем Chrome на живой истории: при окне 1440×900
|
|
330
|
+
панель — колонка 300 px слева, таблица начинается на 346-м и на той же высоте
|
|
331
|
+
(103), её собственное окно 1060 × 602; при 1024 — те же 300 и 651; при 899
|
|
332
|
+
раскладка снимается и столбцы снова идут друг под другом (панель 79, таблица 557).
|
|
322
333
|
Стрежет это проверка на числах таблицы, а не на разметке: выключение папки убирает
|
|
323
334
|
ровно её колонки и ровно её объём из итога (`test/contract.test.js`). Проверено в
|
|
324
335
|
настоящем Chrome: 9 папок до трёх уровней вложенности (`.github/workflows`,
|
|
@@ -503,7 +514,7 @@ deльт задан один раз и по артефакту: рост зел
|
|
|
503
514
|
| `src/css.js` | Чтение оформления с диска: какие наборы стилей есть и какая у них роль |
|
|
504
515
|
| `src/table.css` | Общая часть таблицы: геометрия клеток, липкие шапка и колонка, цвет дельт — одна на артефакт и страницу |
|
|
505
516
|
| `src/artifact.css` | Оформление статического артефакта сверх общей части |
|
|
506
|
-
| `src/page/app.css` | Оформление страницы сверх общей части: панель с деревом
|
|
517
|
+
| `src/page/app.css` | Оформление страницы сверх общей части: панель с деревом файлов (на широком экране — колонка слева от таблицы), состояния пустоты, узкое окно |
|
|
507
518
|
| `src/page/state.js` | Состояние страницы: данные отчёта, вид галочек, паспорт записи, память браузера и обмен ссылкой — глава программы страницы |
|
|
508
519
|
| `src/page/dom.js` | Узлы страницы: мелкие помощники разметки (`appEl`, `appBox`) — одни на панель и таблицу |
|
|
509
520
|
| `src/page/panel.js` | Панель выбора: галочки метрик и файлов, категории, дерево путей, легенда; перерисовку просит у главы сборки |
|
|
@@ -628,7 +639,7 @@ pnpm add -D @vernikr/size-report
|
|
|
628
639
|
```
|
|
629
640
|
|
|
630
641
|
Пакет **опубликован в реестре**, и публично: `npm view @vernikr/size-report
|
|
631
|
-
version` отвечает `1.3.
|
|
642
|
+
version` отвечает `1.3.1`, `npm access get status @vernikr/size-report` — `public`,
|
|
632
643
|
а анонимный запрос тарболла — код 200. `npm i -D` и `yarn add -D` принимают то же
|
|
633
644
|
имя; ни ключа, ни ссылки на репозиторий не нужно.
|
|
634
645
|
|
|
@@ -636,11 +647,11 @@ version` отвечает `1.3.0`, `npm access get status @vernikr/size-report`
|
|
|
636
647
|
реестра, но остаётся привязанной к ревизии:
|
|
637
648
|
|
|
638
649
|
```bash
|
|
639
|
-
pnpm add -D github:vernikr/size-report#v1.3.
|
|
650
|
+
pnpm add -D github:vernikr/size-report#v1.3.1
|
|
640
651
|
```
|
|
641
652
|
|
|
642
653
|
Без сети (или если тянуть из codeload нечем) — тарболл: `pnpm pack` в клоне
|
|
643
|
-
пакета, затем `pnpm add -D ./vernikr-size-report-1.3.
|
|
654
|
+
пакета, затем `pnpm add -D ./vernikr-size-report-1.3.1.tgz`.
|
|
644
655
|
|
|
645
656
|
**Почему тег, а не sha.** Короткий sha pnpm разрешает только через видимые рефы, а
|
|
646
657
|
`git ls-remote` отдаёт одни верхушки веток: пока ревизия — верхушка, короткий sha
|
|
@@ -648,7 +659,7 @@ pnpm add -D github:vernikr/size-report#v1.3.0
|
|
|
648
659
|
<sha> to a commit`. Это не рассуждение, а проба: короткий пин `6530237` ставился,
|
|
649
660
|
пока `main` стоял на нём, и перестал — на следующем же коммите, а тот же sha
|
|
650
661
|
целиком поставился. Имя ветки (`#main`) или тег принимаются оба, но ветка —
|
|
651
|
-
движущаяся цель, а тег постоянен: этот выпуск стоит на теге `v1.3.
|
|
662
|
+
движущаяся цель, а тег постоянен: этот выпуск стоит на теге `v1.3.1`, он же и в
|
|
652
663
|
примере (сорок знаков тоже годятся, но их придётся брать глазами из истории).
|
|
653
664
|
|
|
654
665
|
Ревизия в примере — не украшение, а часть утверждения: она закреплена за тем, что
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vernikr/size-report",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"author": "vernikr",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"report"
|
|
66
66
|
],
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@vernikr/size-report": "1.
|
|
68
|
+
"@vernikr/size-report": "1.3.0",
|
|
69
69
|
"c8": "10",
|
|
70
70
|
"dependency-cruiser": "17",
|
|
71
71
|
"eslint": "^9.18.0",
|
package/src/page/app.css
CHANGED
|
@@ -154,6 +154,36 @@ h1 { margin: 0 0 3px; font-size: 21px; font-weight: 650; letter-spacing: -.012em
|
|
|
154
154
|
* сдвигает разметку. Ссылки журнала и все переключатели доступны с Tab. */
|
|
155
155
|
:focus-visible { outline: 2px solid AccentColor; outline-offset: 2px; border-radius: 3px; }
|
|
156
156
|
|
|
157
|
+
/* Широкая страница: панель выбора (метрики, дерево файлов, легенда) стоит **слева**
|
|
158
|
+
* от таблицы. Это не украшение: на десктопе бокового места много, а вертикального
|
|
159
|
+
* мало — переключатели и числа видны одновременно, и прокрутка страницы не уводит
|
|
160
|
+
* управление за экран. Узкое окно эту же раскладку снимает (ниже): там столбцы
|
|
161
|
+
* снова идут друг под другом, потому что рядом им не хватает ширины.
|
|
162
|
+
*
|
|
163
|
+
* Раскладка — сетка на `body`, а не обёртка в разметке: страница собирается
|
|
164
|
+
* вклейкой глав (`src/page/build.js`), и добавлять ей узлы ради оформления значило
|
|
165
|
+
* бы менять форму страницы в двух местах вместо одного.
|
|
166
|
+
*
|
|
167
|
+
* Порог 900px — тот же, что у адаптаций ниже: одна граница на «широко» и «узко»,
|
|
168
|
+
* иначе между двумя порогами страница осталась бы без ни одного правила. */
|
|
169
|
+
@media (min-width: 900px) {
|
|
170
|
+
body {
|
|
171
|
+
display: grid;
|
|
172
|
+
grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
|
|
173
|
+
column-gap: var(--gap);
|
|
174
|
+
/* Оба столбца начинаются сверху и не растягиваются под соседа: у панели своя
|
|
175
|
+
* высота, у таблицы своя. */
|
|
176
|
+
align-content: start;
|
|
177
|
+
align-items: start;
|
|
178
|
+
}
|
|
179
|
+
header { grid-column: 1 / -1; }
|
|
180
|
+
#panel { grid-column: 1; }
|
|
181
|
+
#notice, #shell, #state, #note { grid-column: 2; }
|
|
182
|
+
/* В столбце дерево прокручивается выше, чем над таблицей: место занимает
|
|
183
|
+
* боковая колонка, а числа не отодвигает. */
|
|
184
|
+
.panel .files { max-height: min(62vh, 620px); }
|
|
185
|
+
}
|
|
186
|
+
|
|
157
187
|
/* Адаптации: единственное место, где страница правит общую геометрию, — потому что
|
|
158
188
|
* общая часть заморожена байтами артефакта, а не потому что так удобнее. */
|
|
159
189
|
@media (max-width: 900px) {
|