Zimin A.N.
750395da09
feat(record): RecordDrawer slide-over per Stage 3.5 handoff (Phase A)
...
Заменяет Modal-based record create/edit на right slide-over drawer per
design_handoff_ordinis_mdm/README.md Screen 3.
What's в Phase A (drawer shell + sticky chrome):
- src/components/record/RecordDrawer.tsx (NEW)
- Two widths: 520px default / 880px wide, toggle через ‹/› button.
Persists в localStorage 'ord-drawer-wide'.
- Sticky header: caption (cap style) + recordId mono + width-toggle +
history button (edit mode) + ×.
- Sticky footer: [Удалить] (danger, edit mode) · 'не сохранено · N полей'
caption · [Отмена] · [Сохранить] (drives form submit через form attr).
- Built на shadcn Sheet primitive + Radix Dialog. Override sheetVariants
inline для transition-able max-width (variant size не toggle'ится
smoothly без animate prop).
- aria-labelledby wires DialogTitle к содержимому header.
- Mobile <880px: w-full fullscreen (per handoff responsive table).
- src/components/form/SchemaDrivenForm.tsx
- New optional props: formId, onDirtyChange.
- Когда formId передан — внутренний FormActions footer прячется (drawer
footer driving submit через <button form={formId} type=submit>).
- Dirty-count считается из RHF formState.dirtyFields (top-level + data.*).
- useEffect surfaces count к parent — drawer footer caption updates live.
- src/routes/dictionaries.$name.tsx
- Modal create/edit -> RecordDrawer.
- State: + recordDirtyCount (reset на close).
- onDelete wires к existing close-confirm flow (kind: 'close-confirm').
- onHistory wires к existing setHistoryKey RecordHistoryDrawer.
- src/i18n.ts
- + form.delete, form.unsavedNFields_one/few/many/other (i18next plural rules).
- + drawer.{collapse,expand,close,captionEdit,captionCreate}.
Phase B (TODO Stage 3.5b — separate MR):
- Section anchor chips (sticky strip)
- Wide-mode left ToC rail (180px)
- Sticky toolbar: search + 'только заполненные' toggle + counter
- Requires x-section schema metadata в backend properties (CEO open question #5 в handoff)
Tests: 8 files, 116 tests pass. TS strict clean.
2026-05-11 14:39:38 +03:00
Zimin A.N.
b94912789f
fix(fonts): semantic typography utilities per handoff (7 roles)
...
Заменяет blanket override из MR !45 на типизированную type scale per
design_handoff_ordinis_mdm/README.md "Scale" section.
Семь semantic @utility в styles.css:
text-title-xl 22/600 — modal title, section header
text-title-lg 17/600 — page title в editor
text-title-md 15/600 — dictionary card title
text-body 13/400 — workhorse: body, buttons, tabs, inputs
text-cell 12.5/500 — table cell text
text-mono 11/500 — Mono: IDs, dates, FK refs (font-mono baked in)
text-cap 10.5/600 — Tektur UPPERCASE caption (font/uppercase baked in)
Audit phases:
P1: добавил 7 утилит, font/uppercase/tracking baked где надо
P2: 43 deterministic codemods (font-mono+text-2xs/[11px] → text-mono,
[15/17/22]px+font-semibold → text-title-*, [12.5]px → text-cell,
[10.5]px+uppercase+tracking → text-cap)
P3: 64 text-sm → text-body (handoff workhorse), 84 text-2xs context-aware
(TableCell → text-cell, bare → text-cell, плюс cleanup caps в backticks
template literals который Phase 2 пропустил), 25 text-xs (6 → text-mono
когда с font-mono, 19 → text-cell), 8 titles text-base/lg → text-title-*
P4: убрал --text-2xs override (no users), оставил --text-sm: 13px scoped
к @nstart/ui passthrough (см. comment в styles.css — убирается в Stage 3.9)
Stats:
text-body: 69 | text-cell: 99 | text-mono: 50 | text-cap: 42
text-title-xl: 5 | text-title-lg: 5 | text-title-md: 7
text-sm/text-2xs/text-xs в src/: 0 (только в styles.css комментариях)
Поведение всех 277 typography usages теперь явно соответствует handoff —
каждое место осознанно выбрано под роль, не плажирующий override.
2026-05-11 14:31:35 +03:00
Zimin A.N.
e62633d903
fix(version): read CI_COMMIT_TAG as source of truth, package.json as fallback
...
Previously: vite read package.json.version only, requiring manual bump
before each tag pipeline (manual sync ломалось — MR !44 пример костыля).
Now: vite reads CI_COMMIT_TAG (passed via Dockerfile ARG GIT_TAG from
.gitlab-ci.yml .docker_base) → strips 'v' prefix → exposes как __APP_TAG__.
'none' sentinel filtered → empty string → fallback к package.json.
VersionBadge priority chain:
1. serverTag (что прод RUNS, через /api/v1/version)
2. clientTag (что build'илось на tag pipeline)
3. v${clientVersion} (package.json fallback floor для local / branch)
Dockerfile: add ARG GIT_TAG=none, ENV CI_COMMIT_TAG=$GIT_TAG (mirrors
существующий pattern с GIT_COMMIT → CI_COMMIT_SHORT_SHA).
Revert package.json 1.3.1 → 1.2.0 (manual bump из MR !44 ). Версия теперь
follows tag, не наоборот.
2026-05-11 14:19:50 +03:00
Zimin A.N.
71432e9ae7
fix(fonts): align all text sizes to handoff spec via Tailwind theme overrides
...
Глобальные правки через @theme в styles.css вместо 200+ точечных правок:
- text-sm: 14px -> 13px (handoff workhorse — body, buttons, tabs)
- text-2xs: undefined -> 11px (handoff IDs, mono meta — было невидимо)
- @utility text-cap: 10.5px Tektur uppercase 0.10em (handoff caps)
Codemod (30 sites): text-2xs + uppercase + tracking-[0.10em] -> text-cap.
Sidebar section labels consolidated с explicit text-[10.5px] на text-cap.
Покрывает 64 text-sm + 148 text-2xs автоматически. Table cells (12.5px)
и page/modal titles (17px/22px) остаются explicit text-[Npx] arbitrary
values по месту — нет slots в Tailwind scale.
2026-05-11 14:12:57 +03:00
Zimin A.N.
780de70fc5
fix(version): bump to 1.3.1 and show 8-char commit hash
...
VersionBadge показывал 1.2.0 (stale package.json) и truncate коммита на
7 символов. Пользователь ожидал v1.3.1 · 4c7fa8d7 (full 8-char short).
- package.json: 1.2.0 -> 1.3.1
- VersionBadge: substring(0, 7) -> substring(0, 8)
- vite.config: git rev-parse --short=8 для consistency с CI_COMMIT_SHORT_SHA
2026-05-11 14:09:03 +03:00
Zimin A.N.
f72aac6398
fix(admin-ui): sidebar font sizes per handoff spec
...
- Section labels (WORKFLOW / АДМИНИСТРИРОВАНИЕ): text-2xs (12px) → 10.5px
Tektur per handoff caption spec. "Администрирование" не вылазит за
220px sidebar.
- Nav items: text-sm (14px) → text-[13px] handoff body workhorse size.
- Badge counters: text-2xs (12px) → text-[11px] (mono IDs spec).
Partial — full font audit pending (Stage 3.x font sweep). См. nsi-hot.md.
2026-05-11 13:56:38 +03:00
Zimin A.N.
0ddba871f7
feat(admin-ui): editor 6-tab layout (Stage 3.4)
...
Dictionary editor route теперь имеет TabBar (handoff design Stage 3.4):
Records | Relations | Fields | JSON | Events | History
URL-synced через ?tab= (default: records). Backward-compat: старый
?view=hub auto-remap'нется в ?tab=relations при mount'е.
Tab contents:
- records (default): существующий records table + filters + edit modal
flow — без изменений, обёрнут в conditional render
- relations: DictionaryHubView (был раньше при view=hub)
- fields: schema properties summary — name/type/required/unique/i18n/FK/desc
- json: pretty-printed schemaJson read-only
- events: link к /audit с pre-filled dict filter
- history: placeholder (schema version timeline — backend endpoint pending)
EditorTabBar — inline component с handoff styling (border-b border-line +
active accent border + font-semibold), -mb-px overlap для clean look.
Hub view's neighbor cards теперь search={tab:'relations'} вместо
view='hub' (consistent с new param).
DictionaryDependentsPanel рендерится только в Records tab — auto Hub view
в Relations tab уже включает dependents через свой layout.
Tests: 116/116 PASS, build green, TS clean.
2026-05-11 13:54:26 +03:00
Александр Зимин
5ffa8d3c86
Merge branch 'fix/v1.2.3-banner-generic' into 'main'
...
fix(admin-ui): UpdateBanner generic message
See merge request 2-6/2-6-4/terravault/ordinis!41
2026-05-11 10:39:35 +00:00
Александр Зимин
dc0002f379
fix(admin-ui): UpdateBanner generic message
2026-05-11 10:39:35 +00:00
Александр Зимин
d7be927a7a
Merge branch 'fix/v1.2.2-update-banner-none' into 'main'
...
fix(admin-ui): UpdateBanner none-version + tokens
See merge request 2-6/2-6-4/terravault/ordinis!40
2026-05-11 10:29:45 +00:00
Александр Зимин
4122aa1fc6
fix(admin-ui): UpdateBanner none-version + tokens
2026-05-11 10:29:45 +00:00
Александр Зимин
7566bd50a9
Merge branch 'fix/v1.2.1-version-display-search' into 'main'
...
fix(admin-ui): version display + global search submit
See merge request 2-6/2-6-4/terravault/ordinis!39
2026-05-11 10:18:22 +00:00
Александр Зимин
580529b977
fix(admin-ui): version display + global search submit
2026-05-11 10:18:22 +00:00
Александр Зимин
4959dcf30b
Merge branch 'feat/v1.2.3-textarea-and-prep' into 'main'
...
feat(admin-ui): shadcn TextArea (Stage 3.8a)
See merge request 2-6/2-6-4/terravault/ordinis!38
2026-05-11 09:13:10 +00:00
Александр Зимин
649b7c4244
feat(admin-ui): shadcn TextArea (Stage 3.8a)
2026-05-11 09:13:10 +00:00
Александр Зимин
117136be84
Merge branch 'feat/v1.2.2-modals-toast-timetravel' into 'main'
...
feat(admin-ui): sonner Toast + TimeTravel polish (Stage 3.6+3.7)
See merge request 2-6/2-6-4/terravault/ordinis!37
2026-05-11 09:11:21 +00:00
Александр Зимин
e2f1c3527b
feat(admin-ui): sonner Toast + TimeTravel polish (Stage 3.6+3.7)
2026-05-11 09:11:21 +00:00
Александр Зимин
057fd09589
Merge branch 'feat/v1.2.1-catalog-refresh' into 'main'
...
feat(admin-ui): catalog refresh + token migration (Stage 3.2)
See merge request 2-6/2-6-4/terravault/ordinis!36
2026-05-11 09:08:38 +00:00
Александр Зимин
6db2a0c345
feat(admin-ui): catalog refresh + token migration (Stage 3.2)
2026-05-11 09:08:38 +00:00
Александр Зимин
3e19fd2cf9
Merge branch 'feat/v1.2.0-graph-and-catalog' into 'main'
...
feat(admin-ui): Graph view с d3-force (Stage 3.3)
See merge request 2-6/2-6-4/terravault/ordinis!35
2026-05-11 08:55:53 +00:00
Александр Зимин
ec713f9704
feat(admin-ui): Graph view с d3-force (Stage 3.3)
2026-05-11 08:55:53 +00:00
Александр Зимин
098907a89b
Merge branch 'feat/v1.1.9-sidebar-topbar' into 'main'
...
feat(admin-ui): Sidebar 220px + TopBar (Stage 3.1)
See merge request 2-6/2-6-4/terravault/ordinis!34
2026-05-11 08:51:37 +00:00
Александр Зимин
b2228c2a29
feat(admin-ui): Sidebar 220px + TopBar (Stage 3.1)
2026-05-11 08:51:37 +00:00
Александр Зимин
6d506fed64
Merge branch 'feat/v1.1.8-ui-codemod' into 'main'
...
feat(admin-ui): codemod @nstart/ui → @/ui (Stage 2.2)
See merge request 2-6/2-6-4/terravault/ordinis!33
2026-05-10 22:17:06 +00:00
Александр Зимин
b7d2fbd7ce
feat(admin-ui): codemod @nstart/ui → @/ui (Stage 2.2)
2026-05-10 22:17:06 +00:00
Александр Зимин
0710efb8ce
Merge branch 'chore/vite-dev-https-proxy' into 'main'
...
chore(admin-ui): vite proxy fix для HTTPS upstream
See merge request 2-6/2-6-4/terravault/ordinis!32
2026-05-10 22:07:45 +00:00
Александр Зимин
be346349d4
chore(admin-ui): vite proxy fix для HTTPS upstream
2026-05-10 22:07:45 +00:00
Александр Зимин
e24c2f6728
Merge branch 'ci/v1.1.x-faster-builds' into 'main'
...
ci: BuildKit cache в docker publish (-10 мин)
See merge request 2-6/2-6-4/terravault/ordinis!31
2026-05-10 21:56:35 +00:00
Александр Зимин
5a4f04a79b
ci: BuildKit cache в docker publish (-10 мин)
2026-05-10 21:56:35 +00:00
Александр Зимин
0f83e99a46
Merge branch 'feat/v1.1.7-shadcn-primitives' into 'main'
...
feat(admin-ui): shadcn primitives + @/ui barrel (Stage 2.1)
See merge request 2-6/2-6-4/terravault/ordinis!30
2026-05-10 21:47:24 +00:00
Александр Зимин
5d12c89c4f
feat(admin-ui): shadcn primitives + @/ui barrel (Stage 2.1)
2026-05-10 21:47:24 +00:00
Александр Зимин
1207259e31
Merge branch 'feat/v1.1.6-shadcn-foundation' into 'main'
...
feat(admin-ui): shadcn/ui + Tailwind v4 foundation + theme switch
See merge request 2-6/2-6-4/terravault/ordinis!29
2026-05-10 21:46:47 +00:00
Александр Зимин
3bfa7cae17
feat(admin-ui): shadcn/ui + Tailwind v4 foundation + theme switch
2026-05-10 21:46:47 +00:00
Александр Зимин
c11a70128c
Merge branch 'fix/v1.1.5-guest-nav-401' into 'main'
...
fix(admin-ui): guest nav filter + suppress drafts 401
See merge request 2-6/2-6-4/terravault/ordinis!28
2026-05-10 21:19:07 +00:00
Александр Зимин
c57003cd73
fix(admin-ui): guest nav filter + suppress drafts 401
2026-05-10 21:19:07 +00:00
Александр Зимин
35c4974a2e
Merge branch 'fix/v1.1.4-no-loading-gate' into 'main'
...
fix(admin-ui): RequireAuth не блокирует UI пока silent SSO loading
See merge request 2-6/2-6-4/terravault/ordinis!27
2026-05-10 21:15:14 +00:00
Александр Зимин
2902730b1e
fix(admin-ui): RequireAuth не блокирует UI пока silent SSO loading
2026-05-10 21:15:14 +00:00
Александр Зимин
87d4d08b8f
Merge branch 'fix/v1.1.3-nginx-search-routes' into 'main'
...
fix(admin-ui): nginx /api/v1/search и /api/v1/records/ → writer
See merge request 2-6/2-6-4/terravault/ordinis!26
2026-05-10 20:12:30 +00:00
Александр Зимин
09f066ba2b
fix(admin-ui): nginx /api/v1/search и /api/v1/records/ → writer
2026-05-10 20:12:30 +00:00
Александр Зимин
12a47eabeb
Merge branch 'fix/v1.1.2-timeline-svg' into 'main'
...
fix(admin-ui): TimeTravelPicker → visual SVG timeline
See merge request 2-6/2-6-4/terravault/ordinis!25
2026-05-10 19:50:17 +00:00
Александр Зимин
94da10f487
fix(admin-ui): TimeTravelPicker → visual SVG timeline
2026-05-10 19:50:17 +00:00
Александр Зимин
b7561a7e3b
Merge branch 'fix/v1.1.1-patch-bundle' into 'main'
...
fix(admin-ui): v1.1.1 patch — version routing + guest mode + timeline UX
See merge request 2-6/2-6-4/terravault/ordinis!24
2026-05-10 19:34:47 +00:00
Александр Зимин
69f1a05a1f
fix(admin-ui): v1.1.1 patch — version routing + guest mode + timeline UX
2026-05-10 19:34:47 +00:00
Александр Зимин
54817e1a9b
Merge branch 'fix/admin-ui-review-backlog-sweep' into 'main'
...
fix(admin-ui): backlog sweep — 7 review items
See merge request 2-6/2-6-4/terravault/ordinis!23
2026-05-10 19:21:33 +00:00
Александр Зимин
48dd8a487a
fix(admin-ui): backlog sweep — 7 review items
2026-05-10 19:21:33 +00:00
Александр Зимин
c7f6559bed
Merge branch 'fix/checkbox-indeterminate-sync' into 'main'
...
fix(admin-ui): Checkbox indeterminate stale state
See merge request 2-6/2-6-4/terravault/ordinis!22
2026-05-10 18:53:07 +00:00
Александр Зимин
0918820661
fix(admin-ui): Checkbox indeterminate stale state
2026-05-10 18:53:07 +00:00
Александр Зимин
67c90efd9e
Merge branch 'fix/version-endpoint-permitall' into 'main'
...
fix(auth): permitAll /api/v1/version (UI polling работает до login)
See merge request 2-6/2-6-4/terravault/ordinis!21
2026-05-10 18:48:55 +00:00
Александр Зимин
b428c78b18
fix(auth): permitAll /api/v1/version (UI polling работает до login)
2026-05-10 18:48:55 +00:00
Александр Зимин
deb61a1dea
Merge branch 'feat/catalog-hub-view' into 'main'
...
feat(admin-ui): Hub view (B) per design handoff — dict relations 3-col layout
See merge request 2-6/2-6-4/terravault/ordinis!20
2026-05-10 18:41:37 +00:00