@ai-matrx/design-system 0.13.0 → 0.14.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,67 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.14.0 — 2026-09-10
4
+
5
+ ### `ArchivedDisclosure` — the card-list half of the ONE archive control
6
+
7
+ 0.13.0 shipped `ArchiveFilter` and the platform still had two archive controls,
8
+ because the frontend kept the other one: `components/official/ArchivedDisclosure`,
9
+ the "Archived (N)" one-click reveal proven in Transcript Studio, invented the
10
+ same day in a different repo. Arman's ruling is that the control is the same
11
+ primitive EVERYWHERE (`common-docs/policies/archived-items.md`), so a second
12
+ home for half of it is the defect, not a convenience.
13
+
14
+ `ArchivedDisclosure` now lives here, ported VERBATIM from that file (including
15
+ its `countLabel` and `keepWhileOpen` additions): a one-click "Archived (N)"
16
+ disclosure, closed by default, rendering archived rows in place underneath —
17
+ or, with `children` omitted, the toggle alone for a host that merges archived
18
+ rows into its own table. `count` is always the true number of archived rows:
19
+ at zero the control renders NOTHING rather than an empty promise, unless
20
+ `keepWhileOpen` marks a surface whose open state IS the archive view (a server
21
+ request), where the way back must never vanish. `countLabel` covers the two
22
+ cases a bare integer cannot tell the truth about: a capped server count
23
+ (`"50+"`) and a count that has not landed (`null` prints no parenthetical).
24
+
25
+ **Two shapes, one vocabulary.** `ArchiveFilter` for table/browse surfaces whose
26
+ reader takes an archive parameter; `ArchivedDisclosure` for card lists, panels
27
+ and pickers that are not table shaped. Never a third. Both speak the single set
28
+ of words, now exported from one module: `ArchiveFilterValue`,
29
+ `ARCHIVE_FILTER_VALUES`, `DEFAULT_ARCHIVE_FILTER` (`active`),
30
+ `ARCHIVE_FILTER_LABELS`, plus two new exports — `ARCHIVE_LABEL`, the ONE noun
31
+ both controls print (`ARCHIVE_FILTER_LABELS.archived` is derived from it, so
32
+ renaming it renames both by construction), and
33
+ `archiveFilterFromDisclosure(open)`, which says a disclosure's state in the
34
+ tri-state words (`open` → `all`, because a disclosure reveals archived rows
35
+ BESIDE the live ones) for hosts whose toggle is a server request.
36
+
37
+ Icons stay inlined (C19): lucide `chevron-down` and `archive` joined
38
+ `src/icons.tsx`, so the port renders the same glyphs with no icon dependency.
39
+
40
+ ### Consumer action
41
+
42
+ **matrx-frontend must delete `components/official/ArchivedDisclosure.tsx`** and
43
+ repoint every importer to `@ai-matrx/design-system` — at the time of writing:
44
+ `features/organizations/components/OrgResourceList.tsx`,
45
+ `features/whatsapp-clone/conversation-list/ConversationListPane.tsx`,
46
+ `features/pdf/scanner/components/desktop/ScannerDesktop.tsx`,
47
+ `features/agents/agent-creators/templates/TemplatesGrid.tsx`,
48
+ `features/canvas/core/SavedCanvasItems.tsx`,
49
+ `features/page-extraction/components/SavedJobsList.tsx`,
50
+ `features/transcript-studio/components/scribe/RecordingCardList.tsx`,
51
+ `features/masterwork/browse/components/MasterworkBrowseCards.tsx`,
52
+ `features/masterwork/home/MasterworkHomePage.tsx`,
53
+ `features/masterwork/components/masterworks/MasterworksPage.tsx`,
54
+ `features/masterwork/components/detail/RulebookDetailPage.tsx`,
55
+ `features/hr/settings/fields/HrFieldsPanel.tsx`,
56
+ `features/pdf-extractor/studio/PdfStudioSidebar.tsx`,
57
+ `features/pdf-extractor/components/PdfExtractorWorkspace.tsx`.
58
+ `lib/entity-list`'s Archived radio renders `<ArchiveFilter>` (its URL and
59
+ preference plumbing is unchanged — only the control component is the package's),
60
+ and `lib/entity-list`'s `ArchivedFilter` type is now an alias of
61
+ `ArchiveFilterValue`. Every other host: a local "Archived (N)" toggle or a
62
+ local tri-state archive segmented control is a twin — delete it and import
63
+ these.
64
+
3
65
  ## 0.13.0 — 2026-09-09
4
66
 
5
67
  ### `ArchiveFilter` — THE ARCHIVED-ITEMS LAW made a control